--
-- Title: Fibre Channel Switch MIB, Version v5.7
--
-- This is specified based on SMIv2, mainly to ensure that the specification
-- can be parsed easily by off-the-shelf network management product in
-- the market.
--
-- The goal of this mib is to access the any Fibre Channel switch of
-- Brocade's family by using single SW-MIB file.
-- This mib file includes the traps for Silkworm Switch.
-- NOTE: Load BRCD_v5_0.mib file before loading this mib file.
--

SW-MIB DEFINITIONS ::= BEGIN
  IMPORTS
        DisplayString, TEXTUAL-CONVENTION
      FROM SNMPv2-TC
    Counter32, Integer32, IpAddress,
    OBJECT-TYPE, OBJECT-IDENTITY,
        MODULE-IDENTITY, NOTIFICATION-TYPE
      FROM SNMPv2-SMI
    FcWwn, SwDomainIndex, SwNbIndex, SwSensorIndex,
    SwPortIndex, SwTrunkMaster
      FROM Brocade-TC
    fcSwitch, bcsiModules
      FROM Brocade-REG-MIB;

  swMibModule MODULE-IDENTITY
    LAST-UPDATED "0408061830Z" -- Aug 06, 2004 6:30pm
    ORGANIZATION "Brocade Communications Systems, Inc.,"
    CONTACT-INFO "Customer Support Group
                  Brocade Communications Systems,
                  1745 Technology Drive,
                  San Jose, CA 95110 U.S.A
                  Tel: +1-408-392-6061
                  Fax: +1-408-392-6656
                  Email: support@Brocade.COM
                  WEB: www.brocade.com"
                

    DESCRIPTION "The MIB module is for Brocade's Fibre Channel Switch.
                 Copyright (c) 1996-2003 Brocade Communications Systems, Inc.
                                 All rights reserved."
    REVISION    "0301131430Z" -- Jan 13, 2003 2:30pm
    DESCRIPTION "The initial version of this module."
    REVISION    "0307201430Z" -- July 20, 2003 2:30pm
    DESCRIPTION "Added swIDIDMode to the swFabric group."
    REVISION    "0404151030Z" -- April 15, 2004 10:30am
    DESCRIPTION "Added object for Trap Severity Level, swFwLastSeverityLevel.
                 Added the enumeration swFwResourceFlash for SwFwClassesAreas.
                 Deprecated the mib object swEventTrapLevel.
                 Updated the description of swGroupId and corrected the spell
                 mistakes.
                 Obsoleted the swFault Trap.
                 Added enumerations four-GB for swFCPortSpeed and unknown,
                                 other for swFCPortType."
    REVISION    "0408061830Z" -- Aug 06, 2004 6:30pm
    DESCRIPTION "Added swFCPortSpecifier object to swFCPortTable."
    REVISION    "0504292016Z" -- Apr 29, 2005 8:16pm
    DESCRIPTION "Modified the #SUMMARY and #ARGUMENTS for swFabricWatchTrap"
    REVISION    "0601090900Z" -- Jan 09, 2006 9:00am
    DESCRIPTION "1. Modified the description for swPortTrunked
                 2. Updated the SW Traps summary and description to
                 remove the obsolete varbindings"
    REVISION    "0605170900Z" -- May 17, 2006 9:00am
    DESCRIPTION "Added swFCPortFlag object to swFCPortTable"
    REVISION    "0701230900Z" -- Jan 23, 2007 9:00am
    DESCRIPTION "Added enumerations eight-GB and  ten-GB for swFCPortSpeed"
        REVISION        "0706081200Z" -- Jun 8, 2007 12:00pm
        DESCRIPTION "Included swFCPortFlag as an additiional variable binding for
                                trap SWFCPortScn"
        REVISION        "0706271030Z" -- Jun 27, 2007 10:30am
        DESCRIPTION "Added enumerations octuple and decuple for swNbBaudRate"
        REVISION        "0708011220Z" -- Aug 01, 2007 12:20pm 
        DESCRIPTION "Added the enumerations swFwEPortUtil and swFwEPortPktl for swFwClassAreaIndex"
        REVISION        "0708290442Z" -- Aug 29, 2007 4:42pm
        DESCRIPTION "Added swFCPortBrcdType object to swFCPortTable"
        ::=     { bcsiModules 3 }
        
    sw              OBJECT-IDENTITY
     STATUS  current
     DESCRIPTION   "The OID sub-tree for Brocade's Silkworm Series of
                    Fibre Channel Switches."
     ::= { fcSwitch 1 }

    sw28k               OBJECT-IDENTITY
     STATUS  current
     DESCRIPTION   "The OID for Brocade's Silkworm 2800 model Fibre Channel
                    Switch."
     ::= { fcSwitch 2 }

    sw21kN24k   OBJECT-IDENTITY
     STATUS  current
     DESCRIPTION   "The OID for Brocade's Silkworm 2100 and 2400 series
                    model Fibre Channel Switch."
     ::= { fcSwitch 3 }

    sw20x0          OBJECT-IDENTITY
     STATUS  current
     DESCRIPTION   "The OID for Brocade's Silkworm 20x0 series
                    model Fibre Channel Switch."
     ::= { fcSwitch 4 }

  SwSevType             ::= TEXTUAL-CONVENTION
     STATUS  current
     DESCRIPTION   "The event trap level in conjunction with the an event's
                    severity level."
     SYNTAX  INTEGER {
               none            (0),
               critical        (1),
               error           (2),
               warning         (3),
               informational   (4),
               debug           (5)
            }
            
  FcPortFlag            ::= TEXTUAL-CONVENTION
     STATUS  current
     DESCRIPTION   "Represents the port status for a FC Flag. Currently this will indicate
                    if the port is virtual or physical."
     SYNTAX  BITS {
               virtual            (0)
            }

  -- various groups
  swSystem      OBJECT-IDENTITY
     STATUS  current
     DESCRIPTION   "The OID sub-tree for swSystem group."
     ::= { sw 1 }

  swFabric      OBJECT-IDENTITY
     STATUS  current
     DESCRIPTION   "The OID sub-tree for swFabric group."
     ::= { sw 2 }

  swModule      OBJECT-IDENTITY
     STATUS  current
     DESCRIPTION   "The OID sub-tree for swModule group."
     ::= { sw 3 }

  swAgtCfg      OBJECT-IDENTITY
     STATUS  current
     DESCRIPTION   "The OID sub-tree for swAgtCfg group."
     ::= { sw 4 }

  -- { sw 5 } is reserved
  swFCport      OBJECT-IDENTITY
     STATUS  current
     DESCRIPTION   "The OID sub-tree for swFCport group."
     ::= { sw 6 }

  swNs          OBJECT-IDENTITY
     STATUS  current
     DESCRIPTION   "The OID sub-tree for swNs group."
     ::= { sw 7 }

  swEvent       OBJECT-IDENTITY
     STATUS  current
     DESCRIPTION   "The OID sub-tree for swEvent group."
     ::= { sw 8 }

  swFwSystem    OBJECT-IDENTITY
     STATUS  current
     DESCRIPTION   "The OID sub-tree for swFwSystem group."
     ::= { sw 10 }

  swEndDevice   OBJECT-IDENTITY
     STATUS  current
     DESCRIPTION   "The OID sub-tree for swEndDevice group."
     ::= { sw 21 }

  swGroup       OBJECT-IDENTITY
     STATUS  current
     DESCRIPTION   "The OID sub-tree for swGroup group."
     ::= { sw 22 }

  swBlmPerfMnt    OBJECT-IDENTITY
     STATUS  current
     DESCRIPTION   "The OID sub-tree for swBlmPerfMnt (Bloom Performance
                    Monitor) group."
    ::= { sw 23 }

  swTrunk      OBJECT-IDENTITY
     STATUS  current
     DESCRIPTION   "The OID sub-tree for swTrunk group."
     ::= { sw 24 }   

  --
  -- the System Group (sw)
  --

  swCurrentDate         OBJECT-TYPE
        SYNTAX          DisplayString(SIZE (0..64))
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "The current date information in displayable textual
                format."
  ::= { swSystem 1 }

  swBootDate            OBJECT-TYPE
        SYNTAX          DisplayString(SIZE (0..64))
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "The date and time when the system last booted, in
                displayable textual format."
  ::= { swSystem 2 }

  swFWLastUpdated       OBJECT-TYPE
        SYNTAX          DisplayString(SIZE (0..64))
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "The information indicates the date when the firmware
                was last updated, in displayable textual format."
  ::= { swSystem 3 }

  swFlashLastUpdated    OBJECT-TYPE
        SYNTAX          DisplayString(SIZE (0..64))
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "The information indicates the date when the FLASH
                was last updated, in displayable textual format."
  ::= { swSystem 4 }

  swBootPromLastUpdated OBJECT-TYPE
        SYNTAX          DisplayString(SIZE (0..64))
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "The information indicates the date when the boot PROM
                was last updated, in displayable textual format."
  ::= { swSystem 5 }

  swFirmwareVersion     OBJECT-TYPE
        SYNTAX          DisplayString(SIZE (0..24))
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "The current version of the firwmare."
  ::= { swSystem 6 }

  swOperStatus          OBJECT-TYPE
        SYNTAX          INTEGER {
                          online        (1),
                          offline       (2),
                          testing       (3),
                          faulty        (4)
                        }
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "The current operational status of the switch.
                The states are as follow:
                o online(1) means the switch is accessible by an external
                  Fibre Channel port;
                o offline(2) means the switch is not accessible;
                o testing(3) means the switch is in a built-in test mode
                  and is not accessible by an external Fibre Channel port;
                o faulty(4) means the switch is not operational."
  ::= { swSystem 7 }

  swAdmStatus           OBJECT-TYPE
        SYNTAX          INTEGER {
                          online        (1),
                          offline       (2),
                          testing       (3),
                          faulty        (4),
                          reboot        (5),
                          fastboot(6),
                          switchReboot  (7)
                        }
        MAX-ACCESS              read-write
        STATUS          current
        DESCRIPTION     "The desired administrative status of the switch.
                A management station may place the switch in a desired
                state by setting this object accordingly. The states
                are as follow:
                o online(1) means set the switch to be accessible by an
                  external Fibre Channel port;
                o offline(2) means set the switch to be inaccessible;
                o testing(3) means set the switch to run the built-in test;
                o faulty(4) means set the switch to a 'soft' faulty
                  condition;
                o reboot(5) means set the switch to reboot in 1 second.
                o fastboot(6) means set the switch to fastboot in 1 second.
                Fastboot would cause the switch to boot but skip over the
                POST.
                o switchReboot(7) means set the current switch to reboot in
                  1 second.

                When the switch is in faulty state, only two states
                can be set: faulty and reboot/fastboot/switchReboot."

  ::= { swSystem 8 }

  swTelnetShellAdmStatus        OBJECT-TYPE
        SYNTAX                  INTEGER {
                                  unknown       (0),
                                  terminated    (1)
                                }
        MAX-ACCESS                      read-write
        STATUS                  current
        DESCRIPTION     "The desired administrative status of the Telnet
                shell. By setting it to terminated(1), the current
                Telnet shell task is deleted. When this variable instance
                is read, it reports the value last set through SNMP."
  ::= { swSystem 9 }

  swSsn                 OBJECT-TYPE
        SYNTAX          DisplayString(SIZE (0..128))
        MAX-ACCESS          read-only
        STATUS          current
        DESCRIPTION     "The soft serial number of the switch."
  ::= { swSystem 10 }

  -- FLASH administration
  -- the next 5 objects are related to firmware or config file management.
  --
  -- The underlying method in the transfer of the firmware or config file
  -- is based on either FTP or remote shell.
  -- If a password is provided, then FTP is used.
  -- If NO password is provided, then remote shell is used.
  --
  -- 2 steps to manage firmware or switch config file in the switch FLASH,
  -- (A1) set swFlashDLHost.0, swFlashDLUser.0 and swFlashDLFile.0 to
  --      appropriate
  --        host IP address in user dot notation (e.g. 192.168.1.7),
  --        user name (e.g. "administrator"), and
  --        file name of the firmware or config file (e.g. "/home/fcswh/v2.2")
  --      respectively;
  -- (A2) set swFlashDLPassword.0 to an appropriate value (e.g. "secret")
  --      if FTP is the desired method of transfer;
  -- (B) set swFlashDLAdmStatus.0 to swFwUpgrade(2), swCfUpload(3),
  --       or swCfDownload(4) accordingly.
  --

  swFlashDLOperStatus   OBJECT-TYPE
        SYNTAX          INTEGER {
                          unknown               (0),
                          swCurrent             (1),
                          swFwUpgraded          (2),
                          swCfUploaded          (3),
                          swCfDownloaded        (4),
                          swFwCorrupted         (5)
                        }
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "The operational status of the FLASH.
                The operational states are as follow:
                o swCurrent(1) indicates that the FLASH contains the
                  current firmware image or config file;
                o swFwUpgraded(2) state indicates that it contains the image
                  upgraded from the swFlashDLHost.0.;
                o swCfUploaded(3) state indicates that the switch configuration
                  file has been uploaded to the host; and
                o swCfDownloaded(4) state indicates that the switch
                  configuration file has been downloaded from the host.
                o swFwCorrupted (5) state indicates that the firmware in the
                  FLASH of the switch is corrupted."
  ::= { swSystem 11 }

  swFlashDLAdmStatus    OBJECT-TYPE
        SYNTAX          INTEGER {
                          swCurrent             (1),
                          swFwUpgrade           (2),
                          swCfUpload            (3),
                          swCfDownload          (4),
                          swFwCorrupted         (5)
                        }
        MAX-ACCESS              read-write
        STATUS          current
        DESCRIPTION     "The desired state of the FLASH.
                A management station may place the FLASH in a desired
                state by setting this object accordingly:
                o swCurrent(1) indicates that the FLASH contains the
                  current firmware image or config file;
                o swFwUpgrade(2) means that the firmware in the FLASH is to be
                  upgraded from the host specified;
                o swCfUpload(3) means that the switch config file is to be
                  uploaded to the host specified; or
                o swCfDownload(4) means that the switch config file is to be
                  downloaded from the host specified.
                o swFwCorrupted(5) state indicates that the firmware in the
                  FLASH is corrupted. This value is for informational purpose
                  only. However, set of swFlashDLAdmStatus to this value is
                  not allowed.

                The host is specified in swFlashDLHost.0. In addition,
                user name is specified in swFlashDLUser.0, and
                the file name specified in swFlashDLFile.0.

                Reference the user manual on the following commands,
                o firmwareDownload,
                o configUpload, and
                o configDownload."
  ::= { swSystem 12 }

  swFlashDLHost         OBJECT-TYPE
        SYNTAX          DisplayString(SIZE (0..64))
        MAX-ACCESS              read-write
        STATUS          current
        DESCRIPTION     "The name or IP address (in dot notation) of the host
                         to download or upload a relevant file to the FLASH."
  ::= { swSystem 13 }

  swFlashDLUser         OBJECT-TYPE
        SYNTAX          DisplayString(SIZE (0..64))
        MAX-ACCESS              read-write
        STATUS          current
        DESCRIPTION     "The user name on the host to download or upload
                         a relevant file to or from the FLASH."
  ::= { swSystem 14 }

  swFlashDLFile         OBJECT-TYPE
        SYNTAX          DisplayString
        MAX-ACCESS              read-write
        STATUS          current
        DESCRIPTION     "The name of the file to be downloaded or uploaded."
  ::= { swSystem 15 }

  swFlashDLPassword     OBJECT-TYPE
        SYNTAX          DisplayString(SIZE (0..100))
        MAX-ACCESS              read-write
        STATUS          current
        DESCRIPTION     "The password to be used in for FTP transfer of
                         files in the download or upload operation."
  ::= { swSystem 16 }

  -- 17..19 are reserved

  swBeaconOperStatus    OBJECT-TYPE
        SYNTAX          INTEGER {
                                on      (1),
                                off     (2)
                        }
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "The current operational status of the switch beacon.
                         When the beacon is on, the LEDs on the front panel
                         of the switch run alternately from left to right
                         and right to left. The color is yellow.
                         When the beacon is off, each LED will be in their
                         its regular status indicating color and state."
  ::= { swSystem 18 }

  swBeaconAdmStatus     OBJECT-TYPE
        SYNTAX          INTEGER {
                                on      (1),
                                off     (2)
                        }
        MAX-ACCESS              read-write
        STATUS          current
        DESCRIPTION     "The desired status of the switch beacon.
                         When the beacon is set to on, the LEDs on the front
                         panel of the switch run alternately from left to right
                         and right to left. The color is yellow.
                         When the beacon is set to off, each LED will be in
                         its regular status indicating color and state."
  ::= { swSystem 19 }

  swDiagResult  OBJECT-TYPE
        SYNTAX          INTEGER {
                                sw-ok                   (1),
                                sw-faulty           (2),
                                sw-embedded-port-fault  (3)
                        }
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "The result of the power-on startup (POST)
                         diagnostics."
  ::= { swSystem 20 }

  -- operating environment sensors (temperature, fan, power supply...)
  swNumSensors          OBJECT-TYPE
        SYNTAX          Integer32 (0..2147483647)
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "The number of sensors inside the switch."
  ::= { swSystem 21 }

  swSensorTable OBJECT-TYPE
        SYNTAX          SEQUENCE OF SwSensorEntry
        MAX-ACCESS              not-accessible
        STATUS          current
        DESCRIPTION     "The table of sensor entries."
  ::= { swSystem 22 }

  swSensorEntry         OBJECT-TYPE
        SYNTAX          SwSensorEntry
        MAX-ACCESS              not-accessible
        STATUS          current
        DESCRIPTION     "An entry of the sensor information."
        INDEX           { swSensorIndex }
  ::= { swSensorTable 1 }

  SwSensorEntry ::= SEQUENCE {
        swSensorIndex   SwSensorIndex,
        swSensorType    INTEGER,
        swSensorStatus  INTEGER,
        swSensorValue   Integer32,
        swSensorInfo    DisplayString(SIZE(0..255))
  }

  swSensorIndex         OBJECT-TYPE
        SYNTAX          SwSensorIndex
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "This object identifies the sensor."
  ::= { swSensorEntry 1 }

  swSensorType          OBJECT-TYPE
        SYNTAX          INTEGER {
                          temperature   (1),
                          fan           (2),
                          power-supply  (3)
                        }
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "This object identifies the sensor type."
  ::= { swSensorEntry 2 }

  swSensorStatus        OBJECT-TYPE
        SYNTAX          INTEGER {
                          unknown       (1),
                          faulty        (2),
                          below-min     (3),
                          nominal       (4),
                          above-max     (5),
                          absent        (6)
                        }
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "The current status of the sensor."
  ::= { swSensorEntry 3 }

  swSensorValue         OBJECT-TYPE
        SYNTAX          Integer32
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "The current value (reading) of the sensor.
                The value, -2147483648, represents an unknown quantity.
                It also means that the sensor does not have the capability to
                measure the actual value. In V2.0, the temperature sensor
                value will be in Celsius; the fan value will be in RPM
                (revolution per minute); and the power supply sensor reading
                will be unknown."
  ::= { swSensorEntry 4 }

  swSensorInfo          OBJECT-TYPE
        SYNTAX          DisplayString(SIZE(0..255))
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "Additional displayable information on the sensor.
                In V2.x, it contains the sensor type and number
                in textual format. For example, 'Temp 3', 'Fan 6'."
  ::= { swSensorEntry 5 }

  -- track changes string scalar
  swTrackChangesInfo    OBJECT-TYPE
        SYNTAX          DisplayString
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "Track changes string. For trap only"
  ::= { swSystem 23 }

  swID     OBJECT-TYPE
        SYNTAX  Integer32
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
        "The number of the logical switch (0/1)"
   ::= { swSystem 24 }

  swEtherIPAddress     OBJECT-TYPE
        SYNTAX  IpAddress
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
        "The IP Address of the Ethernet interface of this logical
        switch."
    ::= { swSystem 25 }

  swEtherIPMask OBJECT-TYPE
        SYNTAX  IpAddress
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
        "The IP Mask of the Ethernet interface of this logical switch."
    ::= { swSystem 26}

  swFCIPAddress OBJECT-TYPE
        SYNTAX  IpAddress
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
        "The IP Address of the FC interface of this logical switch."
    ::= { swSystem 27 }

  swFCIPMask    OBJECT-TYPE
        SYNTAX  IpAddress
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
        "The IP Mask of the FC interface of this logical switch."
    ::= { swSystem 28 }

  --
  -- End of System Group
  --

  --
  -- Fabric Group
  --
  swDomainID    OBJECT-TYPE
        SYNTAX          SwDomainIndex
        MAX-ACCESS              read-write
        STATUS          current
        DESCRIPTION     "The current Fibre Channel domain ID of the switch.
                To set a new value, the switch (swAdmStatus) must be in
                offline or testing state."
  ::= { swFabric 1 }

  swPrincipalSwitch     OBJECT-TYPE
        SYNTAX          INTEGER {
                                yes     (1),
                                no      (2)
                        }
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "This object indicates whether the switch is
                the Principal switch as per FC-SW."
  ::= { swFabric 2 }

  -- swFabric 3..7 are reserved

  -- (immediate) Neighborhood ISL family
  --
  swNumNbs              OBJECT-TYPE
        SYNTAX          Integer32 (0..2147483647)
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "The number of Inter-Switch Links in the (immediate)
                neighborhood."
  ::= { swFabric 8 }

  swNbTable     OBJECT-TYPE
        SYNTAX          SEQUENCE OF SwNbEntry
        MAX-ACCESS              not-accessible
        STATUS          current
        DESCRIPTION     "This table contains the ISLs in the immediate
                neighborhood of the switch."
  ::= { swFabric 9 }

  swNbEntry             OBJECT-TYPE
        SYNTAX          SwNbEntry
        MAX-ACCESS              not-accessible
        STATUS          current
        DESCRIPTION     "An entry containing each neighbor ISL parameters."
        INDEX           { swNbIndex }
  ::= { swNbTable 1 }

  SwNbEntry             ::= SEQUENCE {
        swNbIndex       SwNbIndex,
        swNbMyPort      SwPortIndex,
        swNbRemDomain   SwDomainIndex,
        swNbRemPort     SwPortIndex,
        swNbBaudRate    INTEGER,
        swNbIslState    INTEGER,
        swNbIslCost     Integer32 (0..2147483647),
        swNbRemPortName OCTET STRING (SIZE (8))
  }

  swNbIndex             OBJECT-TYPE
        SYNTAX          SwNbIndex
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "This object identifies the neighbor ISL entry."
  ::= { swNbEntry 1 }

  swNbMyPort            OBJECT-TYPE
        SYNTAX          SwPortIndex
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "This is the port that has an ISL to another switch."
  ::= { swNbEntry 2 }

  swNbRemDomain         OBJECT-TYPE
        SYNTAX          SwDomainIndex
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "This is the Fibre Channel domain on the other end
                of the ISL."
  ::= { swNbEntry 3 }

  swNbRemPort           OBJECT-TYPE
        SYNTAX          SwPortIndex
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "This is the port index on the other end of the ISL."
  ::= { swNbEntry 4 }

  swNbBaudRate          OBJECT-TYPE
        SYNTAX          INTEGER {
                                other           (1),    -- none of below
                                oneEighth       (2),    -- 155 Mbaud
                                quarter         (4),    -- 266 Mbaud
                                half            (8),    -- 532 Mbaud
                                full            (16),   --   1 Gbaud
                                double          (32),   --   2 Gbaud
                                quadruple       (64),   --   4 Gbaud
                                octuple         (128),  --   8 Gbaud
                                decuple         (256)   --  10 Gbaud
                        }
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "The baud rate of the ISL."
  ::= { swNbEntry 5 }

  swNbIslState          OBJECT-TYPE
        SYNTAX          INTEGER {
                                -- sw-down              (0),
                                sw-init         (1),
                                sw-internal2    (2),
                                sw-internal3    (3),
                                sw-internal4    (4),
                                sw-active       (5)
                        }
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "The current state of the ISL."
  ::= { swNbEntry 6 }

  swNbIslCost           OBJECT-TYPE
        SYNTAX          Integer32 (0..2147483647)
        MAX-ACCESS              read-write
        STATUS          current
        DESCRIPTION     "The current link cost of the ISL."
  ::= { swNbEntry 7 }

  swNbRemPortName       OBJECT-TYPE
        SYNTAX          OCTET STRING (SIZE (8))
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "The World_wide_Name of the remote port."
  ::= { swNbEntry 8 }

 -- Fabric member information
 --
  swFabricMemTable      OBJECT-TYPE
        SYNTAX          SEQUENCE OF SwFabricMemEntry
        MAX-ACCESS          not-accessible
        STATUS          current
        DESCRIPTION     "This table contains information on the member 
                         switches of a fabric. This may not be available on
                         all versions of Fabric OS."
  ::= { swFabric 10 }

  swFabricMemEntry              OBJECT-TYPE
        SYNTAX          SwFabricMemEntry
        MAX-ACCESS          not-accessible
        STATUS          current
        DESCRIPTION     "An entry containing each switch in the fabric."
        INDEX           { swFabricMemWwn }
  ::= { swFabricMemTable 1 }

  SwFabricMemEntry      ::= SEQUENCE {
        swFabricMemWwn          FcWwn,
        swFabricMemDid          SwDomainIndex,
        swFabricMemName         DisplayString (SIZE (0..255)),
        swFabricMemEIP          IpAddress,
        swFabricMemFCIP         IpAddress,
        swFabricMemGWIP         IpAddress,
        swFabricMemType         Integer32 (0..2147483647),
        swFabricMemShortVersion OCTET STRING (SIZE (0..24))
  }
  swFabricMemWwn        OBJECT-TYPE
        SYNTAX          FcWwn
        MAX-ACCESS          read-only
        STATUS          current
        DESCRIPTION     "This object identifies the World wide name of the
                         member switch."
  ::= { swFabricMemEntry 1 }

  swFabricMemDid  OBJECT-TYPE
        SYNTAX          SwDomainIndex
        MAX-ACCESS          read-only
        STATUS          current
        DESCRIPTION     "This object identifies the domain id of the member
                         switch."
  ::= { swFabricMemEntry 2 }

  swFabricMemName       OBJECT-TYPE
        SYNTAX          DisplayString (SIZE (0..255))
        MAX-ACCESS          read-only
        STATUS          current
        DESCRIPTION     "This object identifies the name of the member switch."
  ::= { swFabricMemEntry 3 }

  swFabricMemEIP        OBJECT-TYPE
        SYNTAX          IpAddress
        MAX-ACCESS          read-only
        STATUS          current
        DESCRIPTION     "This object identifies the ethernet IP address
                         of the member switch."
  ::= { swFabricMemEntry 4 }
  swFabricMemFCIP       OBJECT-TYPE
        SYNTAX          IpAddress
        MAX-ACCESS          read-only
        STATUS          current
        DESCRIPTION     "This object identifies the Fibre Channel IP address
                         of the member switch."
  ::= { swFabricMemEntry 5 }

  swFabricMemGWIP       OBJECT-TYPE
        SYNTAX          IpAddress
        MAX-ACCESS          read-only
        STATUS          current
        DESCRIPTION     "This object identifies the Gateway IP address
                         of the member switch."
  ::= { swFabricMemEntry 6 }

 swFabricMemType        OBJECT-TYPE
        SYNTAX          Integer32 (0..2147483647)
        MAX-ACCESS          read-only
        STATUS          current
        DESCRIPTION     "This object identifies the member switch type."
  ::= { swFabricMemEntry 7 }

  swFabricMemShortVersion       OBJECT-TYPE
        SYNTAX          OCTET STRING (SIZE (0..24))
        MAX-ACCESS          read-only
        STATUS          current
        DESCRIPTION     "This object identifies Fabric OS version of
                         the member switch."
  ::= { swFabricMemEntry 8 }

  swIDIDMode    OBJECT-TYPE
        SYNTAX          INTEGER { enabled(1), disabled(2) }
        MAX-ACCESS              read-only
        STATUS          current
    DESCRIPTION "Status of Insistent Domain ID (IDID) mode. Status
                   indicating IDID mode is enabled or not."
  ::= { swFabric 11 }

  --
  -- SNMP Agent Configuration
  --

  -- swAgtCfg 1..10 are reserved

  swAgtCmtyTable        OBJECT-TYPE
        SYNTAX          SEQUENCE OF SwAgtCmtyEntry
        MAX-ACCESS              not-accessible
        STATUS          current
        DESCRIPTION     "A table that contains, one entry for each Community,
                the access control and parameters of the Community."
  ::= { swAgtCfg 11 }

  swAgtCmtyEntry        OBJECT-TYPE
        SYNTAX          SwAgtCmtyEntry
        MAX-ACCESS              not-accessible
        STATUS          current
        DESCRIPTION     "An entry containing the Community parameters."
        INDEX   { swAgtCmtyIdx }
  ::= { swAgtCmtyTable 1 }

  SwAgtCmtyEntry        ::= SEQUENCE {
        swAgtCmtyIdx            Integer32 (1..6),
        swAgtCmtyStr            DisplayString (SIZE (2..16)),
        swAgtTrapRcp            IpAddress,
        swAgtTrapSeverityLevel          SwSevType
  }

  swAgtCmtyIdx          OBJECT-TYPE
        SYNTAX          Integer32 (1..6)
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "This object identifies the SNMPv1 Community entry."
  ::= { swAgtCmtyEntry 1 }

  swAgtCmtyStr          OBJECT-TYPE
        SYNTAX          DisplayString(SIZE (2..16))
        MAX-ACCESS              read-write
        STATUS          current
        DESCRIPTION     "This is a Community string supported by the agent.
                If a new value is set successfully, it takes effect
                immediately."
  ::= { swAgtCmtyEntry 2 }

  swAgtTrapRcp          OBJECT-TYPE
        SYNTAX                  IpAddress
        MAX-ACCESS              read-write
        STATUS          current
        DESCRIPTION     "This is the trap recipient associated with the
                Community. If a new value is set successfully, it takes
                effect immediately."
  ::= { swAgtCmtyEntry 3 }

  swAgtTrapSeverityLevel                OBJECT-TYPE
        SYNTAX                  SwSevType
        MAX-ACCESS              read-write
        STATUS              current
        DESCRIPTION     "This is the trap severity level associated with the
                swAgtTrapRcp. The trap severity level in conjunction with
        the an event's severity level. When an event occurs and if its
        severity level is at or below the set value, the SNMP trap is
        sent to configured trap recipients. The severity level is
        limited to particular events. If a new value is set successfully,
        it takes effect immediately."
  ::= { swAgtCmtyEntry 4 }

  --
  -- End of SNMP Agent Configuration Group
  --

  --
  -- Fibre Channel Port Group
  -- This group contains information about the physical state,
  -- operational status, performance and error statistics of each
  -- Fibre Channel port on the switch. A Fibre Channel port is one which
  -- supports the Fibre Channel protocol. E.g. F_Port, E_Port, FL_Port.
  --

  swFCPortCapacity      OBJECT-TYPE
        SYNTAX          Integer32 (0..2147483647)
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "The maximum number of Fibre Channel ports on this
                switch. It includes G_Port, F_Port, FL_Port and any other
                types of Fibre Channel port."
  ::= { swFCport 1 }

  swFCPortTable         OBJECT-TYPE
        SYNTAX          SEQUENCE OF SwFCPortEntry
        MAX-ACCESS              not-accessible
        STATUS          current
        DESCRIPTION     "A table that contains, one entry for each switch port,
                configuration and service parameters of the port."
  ::= { swFCport 2 }

  swFCPortEntry         OBJECT-TYPE
        SYNTAX          SwFCPortEntry
        MAX-ACCESS              not-accessible
        STATUS          current
        DESCRIPTION     "An entry containing the configuration and service
                parameters of the switch port."
        INDEX   { swFCPortIndex }
        ::= { swFCPortTable 1 }

  SwFCPortEntry         ::= SEQUENCE {
        swFCPortIndex           SwPortIndex,
        swFCPortType            INTEGER,
        swFCPortPhyState        INTEGER,
        swFCPortOpStatus        INTEGER,
        swFCPortAdmStatus       INTEGER,

        swFCPortLinkState       INTEGER,
        swFCPortTxType          INTEGER,
        
        -- the rest is mapped to gstat_t
        swFCPortTxWords         Counter32,
        swFCPortRxWords         Counter32,
        swFCPortTxFrames        Counter32,
        swFCPortRxFrames        Counter32,
        swFCPortRxC2Frames      Counter32,
        swFCPortRxC3Frames      Counter32,
        swFCPortRxLCs           Counter32,
        swFCPortRxMcasts        Counter32,
        swFCPortTooManyRdys     Counter32,
        swFCPortNoTxCredits     Counter32,
        swFCPortRxEncInFrs      Counter32,
        swFCPortRxCrcs          Counter32,
        swFCPortRxTruncs        Counter32,
        swFCPortRxTooLongs      Counter32,
        swFCPortRxBadEofs       Counter32,
        swFCPortRxEncOutFrs     Counter32,
        swFCPortRxBadOs         Counter32,
        swFCPortC3Discards      Counter32,
        swFCPortMcastTimedOuts  Counter32,
        swFCPortTxMcasts        Counter32,

        -- LIP statistics
        swFCPortLipIns          Counter32,
        swFCPortLipOuts         Counter32,
        swFCPortLipLastAlpa     OCTET STRING (SIZE(4)),

        -- new for V2.1
        swFCPortWwn             OCTET STRING,

        -- new for V3.0
        swFCPortSpeed       INTEGER,

        -- new for Port Name Feature.
        swFCPortName       DisplayString(SIZE(0..32)),

        -- new for PortSpecifier Feature.
        swFCPortSpecifier    DisplayString,
        
        -- new for portFlag Feature.
        swFCPortFlag    FcPortFlag,

        -- Brocade port type.
        swFCPortBrcdType        INTEGER
  }

  swFCPortIndex         OBJECT-TYPE
        SYNTAX          SwPortIndex
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "This object identifies the switch port index.
                Note that the value of a port index is 1 higher than the
                port number labeled on the front panel.
                E.g. port index 1 correspond to port number 0."
  ::= { swFCPortEntry 1 }

  swFCPortType          OBJECT-TYPE
        SYNTAX          INTEGER {
                          stitch        (1),
                          flannel       (2),
                          loom          (3),
                          bloom         (4),
                          rdbloom       (5),
                          wormhole      (6),
                          other     (7),
                          unknown       (8)
                        }
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "This object identifies the type of switch port.
                         It may be of type stitch(1), flannel(2), loom(3) , bloom(4),rdbloom(5) or wormhole(6)."
  ::= { swFCPortEntry 2 }

  swFCPortPhyState      OBJECT-TYPE
        SYNTAX          INTEGER {
                          noCard        (1),
                          noTransceiver (2),
                          laserFault    (3),
                          noLight       (4),
                          noSync        (5),
                          inSync        (6),
                          portFault     (7),
                          diagFault     (8),
                          lockRef       (9)
                        }
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "This object identifies the physical state of
                the port:
                        noCard(1)       no card present in this switch slot;
                        noTransceiver(2)        no Transceiver module in this port.
                                                                noGbic(2) was used previously. Transceiver
                                                                is the generic name for GBIC, SFP etc.;
                        laserFault(3)   the module is signaling a laser fault
                                        (defective Transceiver);
                        noLight(4)      the module is not receiving light;
                        noSync(5)       the module is receiving light but is
                                        out of sync;
                        inSync(6)       the module is receiving light and is
                                        in sync;
                        portFault(7)    the port is marked faulty (defective
                                        Transceiver, cable or device);
                        diagFault(8)    the port failed diagnostics (defective
                                        G_Port or FL_Port card or motherboard);
                        lockRef(9)      the port is locking to the reference
                                        signal.
                "
  ::= { swFCPortEntry 3 }

  swFCPortOpStatus      OBJECT-TYPE
        SYNTAX          INTEGER {
                          unknown       (0),
                          online        (1),
                          offline       (2),
                          testing       (3),
                          faulty        (4)
                        }
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "This object identifies the operational status of
                the port. The online(1) state indicates that user frames
                can be passed. The unknown(0) state indicates that likely
                the port module is physically absent (see swFCPortPhyState)."
  ::= { swFCPortEntry 4 }

  swFCPortAdmStatus     OBJECT-TYPE
        SYNTAX          INTEGER {
                          online        (1),
                          offline       (2),
                          testing       (3),
                          faulty        (4)
                        }
        MAX-ACCESS              read-write
        STATUS          current
        DESCRIPTION     "The desired state of the port. A management station
                may place the port in a desired state by setting this
                object accordingly.  The testing(3) state indicates that
                no user frames can be passed. As the result of
                either explicit management action or per configuration
                information accessible by the switch, swFCPortAdmStatus is
                then changed to either the online(1) or testing(3)
                states, or remains in the offline(2) state."
  ::= { swFCPortEntry 5 }

  swFCPortLinkState     OBJECT-TYPE
        SYNTAX          INTEGER {
                          enabled       (1),
                          disabled      (2),
                          loopback      (3)
                        }
        MAX-ACCESS              read-write
        STATUS          current
        DESCRIPTION     "This object indicates the link state of the port.
                The value may be:
                  enabled(1) - port is allowed to participate in the FC-PH
                        protocol with its attached port (or ports if it is
                        in a FC-AL loop);
                  disabled(2) - the port is not allowed to participate in
                        the FC-PH protocol with its attached port(s);
                  loopback(3) - the port may transmit frames through an
                        internal path to verify the health of the transmitter
                        and receiver path.

                Note that when the port's link state changes, its
                operational status (swFCPortOpStatus) will be affected."
  ::= { swFCPortEntry 6 }

  swFCPortTxType        OBJECT-TYPE
        SYNTAX          INTEGER {
                          unknown       (1),
                          lw            (2),
                          sw            (3),
                          ld            (4),
                          cu            (5)
                        }
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "This object indicates the media transmitter type of
                the port. The value may be:
                  unknown(1)            cannot determined to the port driver
                  lw(2)                 long wave laser
                  sw(3)                 short wave laser
                  ld(4)                 long wave LED
                  cu(5)                 copper (electrical)."
  ::= { swFCPortEntry 7 }

  -- counters
  swFCPortTxWords       OBJECT-TYPE
        SYNTAX          Counter32
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "This object counts the number of Fibre Channel
                words that the port has transmitted."
  ::= { swFCPortEntry 11 }

  swFCPortRxWords       OBJECT-TYPE
        SYNTAX          Counter32
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "This object counts the number of Fibre Channel
                words that the port has received."
  ::= { swFCPortEntry 12 }

  swFCPortTxFrames      OBJECT-TYPE
        SYNTAX          Counter32
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "This object counts the number of (Fibre Channel)
                frames that the port has transmitted."
  ::= { swFCPortEntry 13 }

  swFCPortRxFrames      OBJECT-TYPE
        SYNTAX          Counter32
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "This object counts the number of (Fibre Channel)
                frames that the port has received."
  ::= { swFCPortEntry 14 }

  swFCPortRxC2Frames    OBJECT-TYPE
        SYNTAX          Counter32
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "This object counts the number of Class 2
                frames that the port has received."
  ::= { swFCPortEntry 15 }

  swFCPortRxC3Frames    OBJECT-TYPE
        SYNTAX          Counter32
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "This object counts the number of Class 3
                frames that the port has received."
  ::= { swFCPortEntry 16 }

  swFCPortRxLCs         OBJECT-TYPE
        SYNTAX          Counter32
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "This object counts the number of Link Control
                frames that the port has received."
  ::= { swFCPortEntry 17 }

  swFCPortRxMcasts      OBJECT-TYPE
        SYNTAX          Counter32
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "This object counts the number of Multicast
                frames that the port has received."
  ::= { swFCPortEntry 18 }

  swFCPortTooManyRdys   OBJECT-TYPE
        SYNTAX          Counter32
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "This object counts the number of times when RDYs
                 exceeds the frames received."
  ::= { swFCPortEntry 19 }

  swFCPortNoTxCredits   OBJECT-TYPE
        SYNTAX          Counter32
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "This object counts the number of times when the
                 transmit credit has reached zero."
  ::= { swFCPortEntry 20 }

  swFCPortRxEncInFrs    OBJECT-TYPE
        SYNTAX          Counter32
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "This object counts the number of encoding error or
                disparity error inside frames received."
  ::= { swFCPortEntry 21 }

  swFCPortRxCrcs        OBJECT-TYPE
        SYNTAX          Counter32
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "This object counts the number of CRC errors
                detected for frames received."
  ::= { swFCPortEntry 22 }

  swFCPortRxTruncs      OBJECT-TYPE
        SYNTAX          Counter32
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "This object counts the number of truncated
                frames that the port has received."
  ::= { swFCPortEntry 23 }

  swFCPortRxTooLongs    OBJECT-TYPE
        SYNTAX          Counter32
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "This object counts the number of received frames that
                are too long."
  ::= { swFCPortEntry 24 }

  swFCPortRxBadEofs     OBJECT-TYPE
        SYNTAX          Counter32
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "This object counts the number of received frames that
                have bad EOF delimiter."
  ::= { swFCPortEntry 25 }

  swFCPortRxEncOutFrs   OBJECT-TYPE
        SYNTAX          Counter32
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "This object counts the number of encoding error or
                disparity error outside frames received."
  ::= { swFCPortEntry 26 }

  swFCPortRxBadOs               OBJECT-TYPE
        SYNTAX          Counter32
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "This object counts the number of invalid Ordered
                Sets received."
  ::= { swFCPortEntry 27 }

  swFCPortC3Discards    OBJECT-TYPE
        SYNTAX          Counter32
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "This object counts the number of Class 3
                frames that the port has discarded."
  ::= { swFCPortEntry 28 }

  swFCPortMcastTimedOuts        OBJECT-TYPE
        SYNTAX          Counter32
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "This object counts the number of Multicast
                frames that has been timed out."
  ::= { swFCPortEntry 29 }

  swFCPortTxMcasts      OBJECT-TYPE
        SYNTAX          Counter32
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "This object counts the number of Multicast
                frames that has been transmitted."
  ::= { swFCPortEntry 30 }

  -- LIP statistics
  swFCPortLipIns        OBJECT-TYPE
        SYNTAX          Counter32
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "This object counts the number of Loop Initializations
                that has been initiated by loop devices attached."
  ::= { swFCPortEntry 31 }

  swFCPortLipOuts       OBJECT-TYPE
        SYNTAX          Counter32
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "This object counts the number of Loop Initializations
                that has been initiated by the port."
  ::= { swFCPortEntry 32 }

  swFCPortLipLastAlpa   OBJECT-TYPE
        SYNTAX          OCTET STRING (SIZE(4))
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "This object indicates the Physical Address (AL_PA)
                of the loop device that initiated the last
                Loop Initialization."
  ::= { swFCPortEntry 33 }

  swFCPortWwn           OBJECT-TYPE
        SYNTAX          OCTET STRING (SIZE(8))
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "The World_wide_Name of the Fibre Channel port.
                The contents of an instance are in the IEEE extended format
                as specified in FC-PH; the 12-bit port identifier represents
                the port number within the switch."
  ::= { swFCPortEntry 34 }

 swFCPortSpeed     OBJECT-TYPE
    SYNTAX      INTEGER
                                {
                                        one-GB   (1),
                                        two-GB   (2),
                                        auto-Negotiate (3),
                                        four-GB (4),
                                        eight-GB (5),
                                        ten-GB (6)
                                }
        MAX-ACCESS      read-write
        STATUS      current
        DESCRIPTION "The desired baud rate for the port. It can have the
                values of 1GB (1), 2GB (2), Auto-Negotiate (3), 4GB (4), 8GB (5),
                or 10GB (6). Some of the above values may not be supported
                by all type of switches."
  ::= { swFCPortEntry 35 }

 swFCPortName     OBJECT-TYPE
    SYNTAX      DisplayString(SIZE(0..32))
        MAX-ACCESS      read-only
        STATUS      current
        DESCRIPTION "A string indicates the name of the addressed port.
                 The names should be persistent across switch reboots.
                 Port names do not have to be unique within a switch or
                 within a fabric."
  ::= { swFCPortEntry 36 }

 swFCPortSpecifier     OBJECT-TYPE
    SYNTAX      DisplayString
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION "This string indicates the physical port number of the addressed port.
                                The format of the string is: <slot>/port, where 'slot' being
                                present only for bladed systems. 
                                "
  ::= { swFCPortEntry 37 }
  
  -- FC port status flag

  swFCPortFlag          OBJECT-TYPE
      SYNTAX      FcPortFlag
      MAX-ACCESS  read-only
      STATUS      current
      DESCRIPTION
         "A bit  map  of  port  status  flags which includes the information of port type.
          Currently this will indicate if the port is virtual or physical."
  ::= { swFCPortEntry 38        }

  swFCPortBrcdType              OBJECT-TYPE
                SYNTAX INTEGER {
                                unknown                 (1),
                                other                   (2),
                                fl-port                 (3),  -- public loop
                                f-port                  (4),  -- fabric port
                                e-port                  (5),  -- fabric expansion port
                                g-port                  (6), -- generic fabric port
                                ex-port                 (7)
                        }
                MAX-ACCESS  read-only
                STATUS      current
                DESCRIPTION
                "The Brocade port type."
  ::= { swFCPortEntry 39    }
        

  --
  -- End of Fibre Channel Port group
  --



  --
  -- The Name Server Database group
  --

  swNsLocalNumEntry     OBJECT-TYPE
        SYNTAX          Integer32 (0..2147483647)
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "The number of local Name Server entries."
  ::= { swNs 1 }

  swNsLocalTable        OBJECT-TYPE
        SYNTAX          SEQUENCE OF SwNsEntry
        MAX-ACCESS              not-accessible
        STATUS          current
        DESCRIPTION     "The table of local Name Server entries."
  ::= { swNs 2 }

  swNsLocalEntry        OBJECT-TYPE
        SYNTAX          SwNsEntry
        MAX-ACCESS              not-accessible
        STATUS          current
        DESCRIPTION     "An entry of the local Name Server database."
        INDEX           { swNsEntryIndex }
  ::= { swNsLocalTable 1 }

  SwNsEntry ::= SEQUENCE {
        swNsEntryIndex  Integer32 (0..2147483647),
        swNsPortID      OCTET STRING(SIZE(4)),
        swNsPortType    INTEGER,
        swNsPortName    FcWwn,
        swNsPortSymb    OCTET STRING,
        swNsNodeName    FcWwn,
        swNsNodeSymb    OCTET STRING,
        swNsIPA         OCTET STRING,
        swNsIpAddress   OCTET STRING,
        swNsCos         INTEGER,
        swNsFc4         OCTET STRING,
        swNsIpNxPort    OCTET STRING(SIZE(16)),
    swNsWwn         OCTET STRING(SIZE(8)),
    swNsHardAddr    OCTET STRING(SIZE(3))
  }

  swNsEntryIndex        OBJECT-TYPE
        SYNTAX          Integer32 (0..2147483647)
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "The object identifies the Name Server database entry."
  ::= { swNsLocalEntry 1 }

  swNsPortID            OBJECT-TYPE
        SYNTAX          OCTET STRING (SIZE(4))
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "The object identifies the Fibre Channel port address
                ID of the entry."
  ::= { swNsLocalEntry 2 }

  swNsPortType          OBJECT-TYPE
        SYNTAX          INTEGER {
                        --  unknown     (0),
                          nPort         (1),
                          nlPort        (2)
                        }
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "The object identifies the type of port: N_Port,
                NL_Port, etc., for this entry. The type is defined in FC-GS-2."
  ::= { swNsLocalEntry 3 }

  swNsPortName          OBJECT-TYPE
        SYNTAX          FcWwn
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "The object identifies the Fibre Channel World_wide
                Name of the port entry."
  ::= { swNsLocalEntry 4 }

  swNsPortSymb          OBJECT-TYPE
        SYNTAX          OCTET STRING(SIZE(0..255))
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "The object identifies the contents of a Symbolic Name
                of the port entry. In FC-GS-2, a Symbolic Name consists of
                a byte array of 1 through 255 bytes, and the first byte of the
                array specifies the length of its 'contents'.
                This object variable corresponds to the 'contents' of the
                Symbolic Name, without the first byte."
  ::= { swNsLocalEntry 5 }

  swNsNodeName          OBJECT-TYPE
        SYNTAX          FcWwn
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "The object identifies the Fibre Channel World_wide
                Name of the associated node as defined in FC-GS-2."
  ::= { swNsLocalEntry 6 }

  swNsNodeSymb          OBJECT-TYPE
        SYNTAX          OCTET STRING (SIZE(0..255))
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "The object identifies the contents of a Symbolic Name
                of the the node associated with the entry. In FC-GS-2,
                a Symbolic Name consists of a byte array of 1 through 255
                bytes, and the first byte of the array specifies the length
                of its 'contents'.
                This object variable corresponds to the 'contents' of the
                Symbolic Name, without the first byte (specifying the length)."
  ::= { swNsLocalEntry 7 }

  swNsIPA               OBJECT-TYPE
        SYNTAX          OCTET STRING (SIZE(8))
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "The object identifies the Initial Process Associator
                of the node for the entry as defined in FC-GS-2."
  ::= { swNsLocalEntry 8 }

  swNsIpAddress         OBJECT-TYPE
        SYNTAX          OCTET STRING (SIZE(16))
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "The object identifies the IP address of the node
                for the entry as defined in FC-GS-2. The format of the address
                is in IPv6."
  ::= { swNsLocalEntry 9 }

  swNsCos               OBJECT-TYPE
        SYNTAX          INTEGER {
                --        class-unknown (0),
                          class-F       (1),
                          class-1       (2),
                          class-F-1     (3),
                          class-2       (4),
                          class-F-2     (5),
                          class-1-2     (6),
                          class-F-1-2   (7),
                          class-3       (8),
                          class-F-3     (9),
                          class-1-3     (10),
                          class-F-1-3   (11),
                          class-2-3     (12),
                          class-F-2-3   (13),
                          class-1-2-3   (14),
                          class-F-1-2-3 (15)
                        -- more to enumerate in future.
                        }
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "The object identifies the class of services supported
                by the port. The value is a bit-map defined as follows:
                o bit 0 is class F,
                o bit 1 is class 1,
                o bit 2 is class 2,
                o bit 3 is class 3,
                o bit 4 is class 4, etc."
  ::= { swNsLocalEntry 10 }

  swNsFc4               OBJECT-TYPE
        SYNTAX          OCTET STRING (SIZE (32))
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "The object identifies the FC-4s supported
                by the port as defined in FC-GS-2."
  ::= { swNsLocalEntry 11 }

  swNsIpNxPort            OBJECT-TYPE
        SYNTAX      OCTET STRING (SIZE(16))
        MAX-ACCESS      read-only
        STATUS      current
        DESCRIPTION     "The object identifies IpAddress of the Nx_port for the entry."
  ::= { swNsLocalEntry 12 }

  swNsWwn       OBJECT-TYPE
        SYNTAX      OCTET STRING (SIZE(8))
        MAX-ACCESS      read-only
        STATUS      current
        DESCRIPTION     "The object identifies the World Wide Name (WWN) of the Fx_port
                                         for the entry."
  ::= { swNsLocalEntry 13 }

  swNsHardAddr            OBJECT-TYPE
        SYNTAX      OCTET STRING (SIZE(3))
        MAX-ACCESS      read-only
        STATUS      current
        DESCRIPTION     "The object identifies the 24-bit hard address of the node
                                     for the entry."
 ::= { swNsLocalEntry 14 }

  --
  -- End of Fibre Channel Name Server group
  --

  -- #######################################################################
  --
  -- Event Group - to map the errLog
  --
  -- NOTE
  -- Logically, swEventTable is separate from the error log since it is
  -- essentially a view of the error log within a particular time window.
  -- The value of swEventIndex shall indicate the event number that has  
  -- occurred since the switch booted. The value will range from 1 through
  -- 2147383647 (2^31 - 1).
  --
  -- #######################################################################
 
  swEventTrapLevel      OBJECT-TYPE
        SYNTAX          INTEGER {
                          none          (0),
                          critical      (1),
                          error         (2),
                          warning       (3),
                          informational (4),
                          debug         (5)
                        }
        MAX-ACCESS          read-write
        STATUS          deprecated
        DESCRIPTION     "swAgtTrapSeverityLevel, in absence of
                swEventTrapLevel, specifies the Trap Severity Level of each
                defined trap recipient host.
                This object specifies the swEventTrap level in
                conjunction with an event's severity level. When an event
                occurs and if its severity level is at or below the value
                specified by this object instance, the agent will send
                the associated swEventTrap to configured recipients."
  ::= { swEvent 1 }
 
  -- { swEvent 2..3 are reserved }
 
  swEventNumEntries     OBJECT-TYPE
        SYNTAX          Integer32 (0..2147483647)
        MAX-ACCESS          read-only
        STATUS          current
        DESCRIPTION     "The number of entries in the Event Table."
  ::= { swEvent 4 }
 
  swEventTable          OBJECT-TYPE
        SYNTAX          SEQUENCE OF SwEventEntry
        MAX-ACCESS          not-accessible
        STATUS          current
        DESCRIPTION     "The table of event entries."
  ::= { swEvent 5 }
 
  swEventEntry          OBJECT-TYPE
        SYNTAX          SwEventEntry
        MAX-ACCESS          not-accessible
        STATUS          current
        DESCRIPTION     "An entry of the event table."
        INDEX           { swEventIndex }
 
  ::= { swEventTable 1 }
 
  SwEventEntry          ::= SEQUENCE {
        swEventIndex            Integer32 (0..2147483647),
        swEventTimeInfo         DisplayString (SIZE (0..64)),
        swEventLevel            INTEGER,
        swEventRepeatCount      Integer32 (0..2147483647),
        swEventDescr            DisplayString
  }

  swEventIndex          OBJECT-TYPE
        SYNTAX          Integer32 (0..2147483647)
        MAX-ACCESS          read-only
        STATUS          current
        DESCRIPTION     "This object identifies the event entry."
  ::= { swEventEntry 1 }
 
  swEventTimeInfo       OBJECT-TYPE
        SYNTAX          DisplayString(SIZE (0..64))
        MAX-ACCESS          read-only
        STATUS          current
        DESCRIPTION     "This object identifies the date and time when this
                event occurred, in textual format."
  ::= { swEventEntry 2 }
 
  swEventLevel          OBJECT-TYPE
        SYNTAX          INTEGER {
                          critical      (1),
                          error         (2),
                          warning       (3),
                          informational (4),
                          debug         (5)
                        }
        MAX-ACCESS          read-only
        STATUS          current
        DESCRIPTION     "This object identifies the severity level of this
                event entry."
  ::= { swEventEntry 3 }
 
  swEventRepeatCount    OBJECT-TYPE
        SYNTAX          Integer32 (0..2147483647)
        MAX-ACCESS          read-only
        STATUS          current
        DESCRIPTION     "This object identifies how many times this particular
                event has occurred."
  ::= { swEventEntry 4 }
 
  swEventDescr          OBJECT-TYPE
        SYNTAX          DisplayString
        MAX-ACCESS          read-only
        STATUS          current
         DESCRIPTION     "This object identifies the textual description of
                the event."
  ::= { swEventEntry 5 }
 
  --
  -- End of Fibre Channel Event Group
  --

  --
  -- swFwSystem
  -- Fabric Watch subsystem
  -- ###########################################################################
  -- Fabric Watch subsystem consists of two tables
  -- SwFwClassAreaEntry contains control information for a particular class/area's
  -- thresholds. These thresholds are contained in SwFwThresholdEntry.
  -- ###########################################################################

  -- valid action matrix
  SwFwActs ::= INTEGER {
                                swFwNoAction(0),
                                swFwErrlog(1),
                                swFwSnmptrap(2),
                                swFwErrlogSnmptrap(3),
                                swFwPortloglock(4),
                                swFwErrlogPortloglock(5),
                                swFwSnmptrapPortloglock(6),
                                swFwErrlogSnmptrapPortloglock(7),
                                swFwRn(8),
                                swFwElRn(9),
                                swFwStRn(10),
                                swFwElStRn(11),
                                swFwPlRn(12),
                                swFwElPlRn(13),
                                swFwStPlRn(14),
                                swFwElStPlRn(15),
                                swFwMailAlert(16),
                                swFwMailAlertErrlog(17),
                                swFwMailAlertSnmptrap(18),
                                swFwMailAlertErrlogSnmptrap(19),
                                swFwMailAlertPortloglock(20),
                                swFwMailAlertErrlogPortloglock(21),
                                swFwMailAlertSnmptrapPortloglock(22),
                                swFwMailAlertErrlogSnmptrapPortloglock(23),
                                swFwMailAlertRn(24),
                                swFwElMailAlertRn(25),
                                swFwMailAlertStRn(26),
                                swFwMailAlertElStRn(27),
                                swFwMailAlertPlRn(28),
                                swFwMailAlertElPlRn(29),
                                swFwMailAlertStPlRn(30),
                                swFwMailAlertElStPlRn(31)
                                }

  -- variable for threshold values or action matrix level
  SwFwLevels ::= INTEGER {
                                swFwReserved(1),
                                swFwDefault(2),
                                swFwCustom(3)
                                }

  -- classes and areas index
  SwFwClassesAreas ::=  INTEGER {
                                swFwEnvTemp(1),
                                swFwEnvFan(2),
                                swFwEnvPs(3),
                                swFwTransceiverTemp(4),
                                swFwTransceiverRxp(5),
                                swFwTransceiverTxp(6),
                                swFwTransceiverCurrent(7),
                                swFwPortLink(8),
                                swFwPortSync(9),
                                swFwPortSignal(10),
                                swFwPortPe(11),
                                swFwPortWords(12),
                                swFwPortCrcs(13),
                                swFwPortRXPerf(14),
                                swFwPortTXPerf(15),
                                swFwPortState(16),
                                swFwFabricEd(17),
                                swFwFabricFr(18),
                                swFwFabricDi(19),
                                swFwFabricSc(20),
                                swFwFabricZc(21),
                                swFwFabricFq(22),
                                swFwFabricFl(23),
                                swFwFabricGs(24),
                                swFwEPortLink(25),
                                swFwEPortSync(26),
                                swFwEPortSignal(27),
                                swFwEPortPe(28),
                                swFwEPortWords(29),
                                swFwEPortCrcs(30),
                                swFwEPortRXPerf(31),
                                swFwEPortTXPerf(32),
                                swFwEPortState(33),
                                swFwFCUPortLink(34),
                                swFwFCUPortSync(35),
                                swFwFCUPortSignal(36),
                                swFwFCUPortPe(37),
                                swFwFCUPortWords(38),
                                swFwFCUPortCrcs(39),
                                swFwFCUPortRXPerf(40),
                                swFwFCUPortTXPerf(41),
                                swFwFCUPortState(42),
                                swFwFOPPortLink(43),
                                swFwFOPPortSync(44),
                                swFwFOPPortSignal(45),
                                swFwFOPPortPe(46),
                                swFwFOPPortWords(47),
                                swFwFOPPortCrcs(48),
                                swFwFOPPortRXPerf(49),
                                swFwFOPPortTXPerf(50),
                                swFwFOPPortState(51),
                                swFwPerfALPACRC(52),
                            swFwPerfEToECRC(53),
                            swFwPerfEToERxCnt(54),
                            swFwPerfEToETxCnt(55),
                            swFwPerffltCusDef(56),
                            swFwTransceiverVoltage(57),
                            swFwSecTelnetViolations(58),
                            swFwSecHTTPViolations(59),
                            swFwSecAPIViolations(60),
                            swFwSecRSNMPViolations(61),
                            swFwSecWSNMPViolations(62),
                            swFwSecSESViolations(63),
                            swFwSecMSViolations(64),
                            swFwSecSerialViolations(65),
                            swFwSecFPViolations(66),
                            swFwSecSCCViolations(67),
                            swFwSecDCCViolations(68),
                            swFwSecLoginViolations(69),
                            swFwSecInvaledTS(70),
                            swFwSecInvalidSign(71),
                            swFwSecInvalidCert(72),
                            swFwSecSlapFail(73),
                            swFwSecSlapBadPkt(74),
                            swFwSecTSOutSync(75),
                            swFwSecNoFcs(76),
                            swFwSecIncompDB(77),
                            swFwSecIllegalCmd(78),
                                swFwSAMTotalDownTime(79),
                                swFwSAMTotalUpTime(80),
                                swFwSAMDurationOfOccur(81),
                                swFwSAMFreqOfOccur(82),
                                swFwResourceFlash(83),
                                swFwEPortUtil(84),
                                swFwEPortPktl(85)
                                }

  -- write only variable for applying or canceling
  -- values or action matrix changes
  SwFwWriteVals ::= INTEGER {
                                swFwCancelWrite(1),
                                swFwApplyWrite(2)
                                }

  -- timebase for thresholds
  SwFwTimebase ::= INTEGER {
                                swFwTbNone(1),
                                swFwTbSec(2),
                                swFwTbMin(3),
                                swFwTbHour(4),
                                swFwTbDay(5)
                                }

  -- status for thresholds
  SwFwStatus ::= INTEGER {
                                disabled(1),
                                enabled(2)
                                }

  -- possible events available
  SwFwEvent ::= INTEGER {
                                started(1),
                                changed(2),
                                exceeded(3),
                                below(4),
                                above(5),
                                inBetween(6)
                                }
 
  -- behavior type for thresholds
  SwFwBehavior ::= INTEGER {
                                triggered(1),
                                continuous(2)
                                }

  -- state type for last events
  SwFwState ::= INTEGER {
                                swFwInformative(1),
                                swFwNormal(2),
                                swFwFaulty(3)
                                }

  -- license state
  SwFwLicense ::= INTEGER {
                                swFwLicensed(1),
                                swFwNotLicensed(2)
                                }

  -- This is the first of the elements declared for Fabric Watch :
  -- one scalar & two tables
  -- A scalar, swFwFabricWatchLicense is used to tell is if the switch has
  -- proper license for Fabric Watch. Please refer to Fabric Watch 
  -- documentation for further information.
  -- One table contains classArea information such as threshold unit string,
  -- time base, low thresholds, etc. The other table contains individual
  -- threshold information such as name, label, last event, etc.
  -- Please refer to Fabric Watch documentation for further information.

  -- license scalar
  swFwFabricWatchLicense        OBJECT-TYPE
        SYNTAX          SwFwLicense
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "tells if licensed or not."
  ::= { swFwSystem 1 }

  -- classArea table
  swFwClassAreaTable    OBJECT-TYPE
        SYNTAX          SEQUENCE OF     SwFwClassAreaEntry
        MAX-ACCESS              not-accessible
        STATUS          current
        DESCRIPTION     "The table of classes and areas."
  ::= { swFwSystem 2 }

  swFwClassAreaEntry    OBJECT-TYPE
        SYNTAX          SwFwClassAreaEntry
        MAX-ACCESS              not-accessible
        STATUS          current
        DESCRIPTION     "An entry of the classes and areas."
        INDEX           { swFwClassAreaIndex }
  ::= { swFwClassAreaTable 1 }

  SwFwClassAreaEntry ::= SEQUENCE {
        swFwClassAreaIndex              SwFwClassesAreas,
        swFwWriteThVals                 SwFwWriteVals,
        swFwDefaultUnit                 DisplayString,
        swFwDefaultTimebase             SwFwTimebase,
        swFwDefaultLow                  Integer32 (0..2147483647),
        swFwDefaultHigh                 Integer32 (0..2147483647),
        swFwDefaultBufSize              Integer32 (0..2147483647),
        swFwCustUnit                    DisplayString,
        swFwCustTimebase                SwFwTimebase,
        swFwCustLow                             Integer32 (0..2147483647),
        swFwCustHigh                    Integer32 (0..2147483647),
        swFwCustBufSize                 Integer32 (0..2147483647),
        swFwThLevel                             SwFwLevels,
        swFwWriteActVals                SwFwWriteVals,
        swFwDefaultChangedActs  SwFwActs,
        swFwDefaultExceededActs SwFwActs,
        swFwDefaultBelowActs    SwFwActs,
        swFwDefaultAboveActs    SwFwActs,
        swFwDefaultInBetweenActs        SwFwActs,
        swFwCustChangedActs             SwFwActs,
        swFwCustExceededActs    SwFwActs,
        swFwCustBelowActs               SwFwActs,
        swFwCustAboveActs               SwFwActs,
        swFwCustInBetweenActs           SwFwActs,
        swFwValidActs                   SwFwActs,
        swFwActLevel                    SwFwLevels
        }

  swFwClassAreaIndex    OBJECT-TYPE
        SYNTAX          SwFwClassesAreas
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "This object identifies the class type."
  ::= { swFwClassAreaEntry 1 }

  -- this variable is used to apply or cancel
  -- changes made to swFwCustUnit, swFwCustTimebase, swFwCustLow,
  -- swFwCustHigh, swFwCustBufSize.
  -- read of this variable will always return cancel.
  swFwWriteThVals       OBJECT-TYPE
        SYNTAX          SwFwWriteVals
        MAX-ACCESS              read-write
        STATUS          current
        DESCRIPTION     "This object is set to apply the value changes."
  ::= { swFwClassAreaEntry 2 }

  -- {swFwDefaultUnit, swFwDefaultTimebase, swFwDefaultMin, and swFwDefaultMax}
  -- {swFwCustUnit, swFwCustTimebase, swFwCustMin, and swFwCustMax}
  -- are grouped together to be applied to give threshold areas as in 
  --- Default and Cust. Which of default, or custom groups applies depends
  --- on swFwThLevel.
  swFwDefaultUnit               OBJECT-TYPE     
        SYNTAX          DisplayString
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "A Default unit string name for a threshold area."
  ::= { swFwClassAreaEntry 3 }

  swFwDefaultTimebase   OBJECT-TYPE
        SYNTAX          SwFwTimebase
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "A Default timebase for the current threshold counter."
  ::= { swFwClassAreaEntry 4 }

  swFwDefaultLow                OBJECT-TYPE
        SYNTAX          Integer32 (0..2147483647)
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "A Default low threshold value."
  ::= { swFwClassAreaEntry 5 }

  swFwDefaultHigh               OBJECT-TYPE
        SYNTAX          Integer32 (0..2147483647)
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "A Default high threshold value."
  ::= { swFwClassAreaEntry 6 }

  swFwDefaultBufSize            OBJECT-TYPE
        SYNTAX          Integer32 (0..2147483647)
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "A Default buffer size value."
  ::= { swFwClassAreaEntry 7 }

  swFwCustUnit  OBJECT-TYPE     
        SYNTAX          DisplayString
        MAX-ACCESS              read-write
        STATUS          current
        DESCRIPTION     "A custom unit string name for a threshold area."
  ::= { swFwClassAreaEntry 8 }

  swFwCustTimebase      OBJECT-TYPE
        SYNTAX          SwFwTimebase
        MAX-ACCESS              read-write
        STATUS          current
        DESCRIPTION     "A custom timebase for the current threshold counter."
  ::= { swFwClassAreaEntry 9 }

  swFwCustLow           OBJECT-TYPE
        SYNTAX          Integer32 (0..2147483647)
        MAX-ACCESS              read-write
        STATUS          current
        DESCRIPTION     "A custom low threshold value."
  ::= { swFwClassAreaEntry 10 }

  swFwCustHigh          OBJECT-TYPE
        SYNTAX          Integer32 (0..2147483647)
        MAX-ACCESS              read-write
        STATUS          current
        DESCRIPTION     "A custom high threshold value."
  ::= { swFwClassAreaEntry 11 }

  swFwCustBufSize               OBJECT-TYPE
        SYNTAX          Integer32 (0..2147483647)
        MAX-ACCESS              read-write
        STATUS          current
        DESCRIPTION     "A custom buffer size value."
  ::= { swFwClassAreaEntry 12 }

  -- swFwThLevel is used to point to current level for classArea
  -- values. It is either default or custom.
  swFwThLevel           OBJECT-TYPE
        SYNTAX          SwFwLevels
        MAX-ACCESS              read-write
        STATUS          current
        DESCRIPTION     "A level where all the threshold values are set at."
  ::= { swFwClassAreaEntry 13 }

  -- this variable is used to apply or cancel
  -- changes made to swFwCustUnit, swFwCustTimebase, swFwCustLow,
  -- swFwCustHigh, swFwCustBufSize.
  -- read of this variable will always return cancel.
  swFwWriteActVals      OBJECT-TYPE
        SYNTAX          SwFwWriteVals
        MAX-ACCESS              read-write
        STATUS          current
        DESCRIPTION     "This object is set to apply act value changes."
  ::= { swFwClassAreaEntry 14 }

  -- {swFwDefaultChangedActs, swFwDefaultExceededActs, swFwDefaultBelowActs, 
  -- and swFwDefaultAboveActs} and {swFwCustChangedActs, swFwCustExceededActs, 
  -- swFwCustBelowActs, and swFwCustAboveActs} are grouped together to be 
  -- applied to give threshold areas as in default and cust. Which of 
  -- default, or custom groups applies depends on swFwThLevel.
  swFwDefaultChangedActs        OBJECT-TYPE
        SYNTAX          SwFwActs
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "Default action matrix for changed event."
  ::= { swFwClassAreaEntry 15 }
        
  swFwDefaultExceededActs       OBJECT-TYPE
        SYNTAX          SwFwActs
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "Default action matrix for exceeded event."
  ::= { swFwClassAreaEntry 16 }
        
  swFwDefaultBelowActs  OBJECT-TYPE
        SYNTAX          SwFwActs
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "Default action matrix for below event."
  ::= { swFwClassAreaEntry 17 }
        
  swFwDefaultAboveActs  OBJECT-TYPE
        SYNTAX          SwFwActs
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "Default action matrix for above event."
  ::= { swFwClassAreaEntry 18 }

  swFwDefaultInBetweenActs      OBJECT-TYPE
        SYNTAX          SwFwActs
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "Default action matrix for in-between event."
  ::= { swFwClassAreaEntry 19 }

  swFwCustChangedActs   OBJECT-TYPE
        SYNTAX          SwFwActs
        MAX-ACCESS              read-write
        STATUS          current
        DESCRIPTION     "custom action matrix for changed event."
  ::= { swFwClassAreaEntry 20 }
        
  swFwCustExceededActs  OBJECT-TYPE
        SYNTAX          SwFwActs
        MAX-ACCESS              read-write
        STATUS          current
        DESCRIPTION     "custom action matrix for exceeded event."
  ::= { swFwClassAreaEntry 21 }
        
  swFwCustBelowActs     OBJECT-TYPE
        SYNTAX          SwFwActs
        MAX-ACCESS              read-write
        STATUS          current
        DESCRIPTION     "custom action matrix for below event."
  ::= { swFwClassAreaEntry 22 }
        
  swFwCustAboveActs     OBJECT-TYPE
        SYNTAX          SwFwActs
        MAX-ACCESS              read-write
        STATUS          current
        DESCRIPTION     "custom action matrix for above event."
  ::= { swFwClassAreaEntry 23 }

  swFwCustInBetweenActs OBJECT-TYPE
        SYNTAX          SwFwActs
        MAX-ACCESS              read-write
        STATUS          current
        DESCRIPTION     "custom action matrix for in-between event."
  ::= { swFwClassAreaEntry 24 }

  swFwValidActs OBJECT-TYPE
        SYNTAX          SwFwActs
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "matrix of valid acts for an class/area."
  ::= { swFwClassAreaEntry 25 }

  -- swFwActLevel is used to point to current level for classArea
  -- action matrix. It is either default or custom.
  swFwActLevel  OBJECT-TYPE
        SYNTAX          SwFwLevels
        MAX-ACCESS              read-write
        STATUS          current
        DESCRIPTION     "A level where all the actions are set at."
  ::= { swFwClassAreaEntry 26 }

  -- table for individual threshold
  swFwThresholdTable    OBJECT-TYPE
        SYNTAX          SEQUENCE OF     SwFwThresholdEntry
        MAX-ACCESS              not-accessible
        STATUS          current
        DESCRIPTION     "The table of individual thresholds."
  ::= { swFwSystem 3 }

  swFwThresholdEntry    OBJECT-TYPE
        SYNTAX          SwFwThresholdEntry
        MAX-ACCESS              not-accessible
        STATUS          current
        DESCRIPTION     "An entry of an individual threshold."
        INDEX           { swFwClassAreaIndex, swFwThresholdIndex }
  ::= { swFwThresholdTable 1 }

  SwFwThresholdEntry ::= SEQUENCE {
        swFwThresholdIndex              Integer32 (0..2147483647),
        swFwStatus                              SwFwStatus,
        swFwName                                DisplayString(SIZE(0..32)),
        swFwLabel                               DisplayString(SIZE(0..70)),
        swFwCurVal                              Integer32 (0..2147483647),
        swFwLastEvent                   SwFwEvent,
        swFwLastEventVal                Integer32 (0..2147483647),
        swFwLastEventTime               DisplayString(SIZE(0..32)),
        swFwLastState                   SwFwState,
        swFwBehaviorType                SwFwBehavior,
        swFwBehaviorInt                 Integer32 (0..2147483647),
        swFwLastSeverityLevel   SwSevType
        }       

  swFwThresholdIndex    OBJECT-TYPE
        SYNTAX          Integer32 (0..2147483647)
        MAX-ACCESS              read-only       
        STATUS          current
        DESCRIPTION     "This object identifies the element index of
                                an threshold."
  ::= { swFwThresholdEntry 1 }

  swFwStatus            OBJECT-TYPE
        SYNTAX          SwFwStatus
        MAX-ACCESS              read-write
        STATUS          current
        DESCRIPTION     "This object identifies if an threshold is
                                enabled or disabled."
  ::= { swFwThresholdEntry 2 }

  swFwName              OBJECT-TYPE
        SYNTAX          DisplayString(SIZE(0..32))
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "This object is a name of the threshold."
  ::= { swFwThresholdEntry 3 }

  swFwLabel             OBJECT-TYPE
        SYNTAX          DisplayString(SIZE(0..70))
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "This object is a label of the threshold."
  ::= { swFwThresholdEntry 4 }

  swFwCurVal            OBJECT-TYPE
        SYNTAX          Integer32 (0..2147483647)
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "This object is a current counter of the threshold."
  ::= { swFwThresholdEntry 5 }

  swFwLastEvent OBJECT-TYPE
        SYNTAX          SwFwEvent
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "This object is a last event type of the threshold."
  ::= { swFwThresholdEntry 6 }

  swFwLastEventVal      OBJECT-TYPE
        SYNTAX          Integer32 (0..2147483647)
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "This object is a last event value of the threshold."
  ::= { swFwThresholdEntry 7 }

  swFwLastEventTime     OBJECT-TYPE
        SYNTAX          DisplayString(SIZE(0..32))
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "This object is a last event time of the threshold."
  ::= { swFwThresholdEntry 8 }

  swFwLastState OBJECT-TYPE
        SYNTAX          SwFwState
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "This object is a last event state of the threshold."
  ::= { swFwThresholdEntry 9 }

  swFwBehaviorType      OBJECT-TYPE
        SYNTAX          SwFwBehavior
        MAX-ACCESS              read-write
        STATUS          current
        DESCRIPTION     "A behavior of which the thresholds generate event."
  ::= { swFwThresholdEntry 10 }

  swFwBehaviorInt       OBJECT-TYPE
        SYNTAX          Integer32 (0..2147483647)
        MAX-ACCESS              read-write
        STATUS          current
        DESCRIPTION     "A integer of which the thresholds generate continuous event."
  ::= { swFwThresholdEntry 11 }

  swFwLastSeverityLevel OBJECT-TYPE
        SYNTAX          SwSevType
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION     "This object is a last event severity level of the threshold."
  ::= { swFwThresholdEntry 12 }

  -- swEndDevice Group
  -- ###########################################################################
  -- table for RLS of end devices.
  -- swEndDevice consists of only one table.
  -- swEndDeviceRlsTable contains entries of individual end devices' rls.
  -- ###########################################################################

  swEndDeviceRlsTable   OBJECT-TYPE
        SYNTAX          SEQUENCE OF     SwEndDeviceRlsEntry
        MAX-ACCESS              not-accessible
        STATUS          current
        DESCRIPTION     "The table of individual end devices' rls."
  ::= { swEndDevice 1 }

  swEndDeviceRlsEntry   OBJECT-TYPE
        SYNTAX          SwEndDeviceRlsEntry
        MAX-ACCESS              not-accessible
        STATUS          current
        DESCRIPTION     "An entry of an individual end devices' rls."
        INDEX           { swEndDevicePort, swEndDeviceAlpa }
  ::= { swEndDeviceRlsTable 1 }

  SwEndDeviceRlsEntry ::= SEQUENCE {
        swEndDevicePort                         Integer32 (0..2147483647),
        swEndDeviceAlpa                         Integer32 (0..2147483647),
        swEndDevicePortID               OCTET STRING (SIZE(4)),
        swEndDeviceLinkFailure          Integer32 (0..2147483647),
        swEndDeviceSyncLoss                     Integer32 (0..2147483647),
        swEndDeviceSigLoss                      Integer32 (0..2147483647),
        swEndDeviceProtoErr                     Integer32 (0..2147483647),
        swEndDeviceInvalidWord          Integer32 (0..2147483647),
        swEndDeviceInvalidCRC           Integer32 (0..2147483647)
        }       

  -- Since Silkworm family switches start with port # 0
  -- snmp port # should be physical port # + 1.
  -- i.e. snmp port # 3 translates to port # 2
  swEndDevicePort       OBJECT-TYPE
        SYNTAX          Integer32 (0..2147483647)
        MAX-ACCESS              not-accessible
        STATUS          current
        DESCRIPTION     "This object identifies the port of the end device."
  ::= { swEndDeviceRlsEntry 1 }

  -- snmp alpa # should be logical alpa # + 1.
  -- i.e. snmp alpa # 0xf0 translates to 0xef
  swEndDeviceAlpa       OBJECT-TYPE
        SYNTAX          Integer32 (0..2147483647)
        MAX-ACCESS              not-accessible
        STATUS          current
        DESCRIPTION     "This object identifies the alpa of the end device."
  ::= { swEndDeviceRlsEntry 2 }

  swEndDevicePortID             OBJECT-TYPE
        SYNTAX          OCTET STRING (SIZE(4))
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "The object identifies the Fibre Channel port address
                ID of the entry."
  ::= { swEndDeviceRlsEntry 3 }

  swEndDeviceLinkFailure        OBJECT-TYPE
        SYNTAX          Integer32 (0..2147483647)
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "Link failure count for the end device."
  ::= { swEndDeviceRlsEntry 4 }

  swEndDeviceSyncLoss   OBJECT-TYPE
        SYNTAX          Integer32 (0..2147483647)
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "Sync loss count for the end device."
  ::= { swEndDeviceRlsEntry 5 }

  swEndDeviceSigLoss    OBJECT-TYPE
        SYNTAX          Integer32 (0..2147483647)
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "Sig loss count for the end device."
  ::= { swEndDeviceRlsEntry 6 }

  swEndDeviceProtoErr   OBJECT-TYPE
        SYNTAX          Integer32 (0..2147483647)
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "Protocol err count for the end device."
  ::= { swEndDeviceRlsEntry 7 }

  swEndDeviceInvalidWord        OBJECT-TYPE
        SYNTAX          Integer32 (0..2147483647)
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "Invalid word count for the end device."
  ::= { swEndDeviceRlsEntry 8 }

  swEndDeviceInvalidCRC OBJECT-TYPE
        SYNTAX          Integer32 (0..2147483647)
        MAX-ACCESS              read-only
        STATUS          current
        DESCRIPTION     "Invalid CRC count for the end device."
  ::= { swEndDeviceRlsEntry 9 }

-- table for displaying all the Groups
  swGroupTable  OBJECT-TYPE
        SYNTAX          SEQUENCE OF     SwGroupEntry
        MAX-ACCESS          not-accessible
        STATUS          current
        DESCRIPTION     "The table of groups. This may not be available
                         on all versions of Fabric OS."
  ::= { swGroup 1 }

  swGroupEntry  OBJECT-TYPE
        SYNTAX          SwGroupEntry
        MAX-ACCESS          not-accessible
        STATUS          current
        DESCRIPTION     "An entry of table of groups."
        INDEX           { swGroupIndex }
  ::= { swGroupTable 1 }

  SwGroupEntry ::= SEQUENCE {
        swGroupIndex    Integer32 (0..2147483647),
        swGroupName     OCTET STRING (SIZE (0..32)),
        swGroupType     OCTET STRING (SIZE (0..15))
        }
swGroupIndex    OBJECT-TYPE
        SYNTAX          Integer32 (0..2147483647)
        MAX-ACCESS          read-only
        STATUS          current
        DESCRIPTION     "This object is the group index starting from 1."
  ::= { swGroupEntry 1 }

 swGroupName    OBJECT-TYPE
        SYNTAX          OCTET STRING (SIZE (0..32))
        MAX-ACCESS          read-only
        STATUS          current
        DESCRIPTION     "This object identifies the name of the group."
  ::= { swGroupEntry 2 }

  swGroupType   OBJECT-TYPE
        SYNTAX          OCTET STRING (SIZE (0..15))
        MAX-ACCESS          read-only
        STATUS          current
        DESCRIPTION     "This object identifies the type of the group."
  ::= { swGroupEntry 3 }

-- table for displaying group members for all the groups

  swGroupMemTable       OBJECT-TYPE
        SYNTAX          SEQUENCE OF SwGroupMemEntry
        MAX-ACCESS          not-accessible
        STATUS          current
        DESCRIPTION     "The table of members of all groups. This may not
                         be available on all versions of Fabric OS."
  ::= { swGroup 2 }

  swGroupMemEntry       OBJECT-TYPE
        SYNTAX          SwGroupMemEntry
        MAX-ACCESS          not-accessible
        STATUS          current
        DESCRIPTION     "An entry for a member of a group."
        INDEX           { swGroupId, swGroupMemWwn }
  ::= { swGroupMemTable 1 }

  SwGroupMemEntry ::= SEQUENCE {
        swGroupId       Integer32 (0..2147483647),
        swGroupMemWwn   FcWwn,
        swGroupMemPos   Integer32 (0..2147483647)
        }

  swGroupId OBJECT-TYPE
        SYNTAX          Integer32 (0..2147483647)
        MAX-ACCESS          read-only
        STATUS          current
        DESCRIPTION     "This object identifies the Group Id  of the
                         member switch."
  ::= { swGroupMemEntry 1 }

  swGroupMemWwn OBJECT-TYPE
        SYNTAX          FcWwn
        MAX-ACCESS          read-only
        STATUS          current
        DESCRIPTION     "This object identifies the WWN of the member switch."
  ::= { swGroupMemEntry 2 }

  swGroupMemPos OBJECT-TYPE
        SYNTAX          Integer32 (0..2147483647)
        MAX-ACCESS          read-only
        STATUS          current
        DESCRIPTION     "This object identifies position of the member
                         switch in the group. This is based on the order
                         that the switches were added in the group."
  ::= { swGroupMemEntry 3 }

-- ************************************************************************************
--      Bloom Performance counter tables.                                           *
--                                                                                  *
-- ************************************************************************************

 swBlmPerfALPAMntTable      OBJECT-TYPE
   SYNTAX          SEQUENCE OF SwBlmPerfALPAMntEntry
   MAX-ACCESS          not-accessible
   STATUS          current
   DESCRIPTION  "ALPA monitoring counter Table. "
 ::= { swBlmPerfMnt 1}

 swBlmPerfALPAMntEntry      OBJECT-TYPE
   SYNTAX          SwBlmPerfALPAMntEntry
   MAX-ACCESS          not-accessible
   STATUS          current
   DESCRIPTION     " ALPA monitoring counter for given ALPA."
   INDEX           { swBlmPerfAlpaPort,swBlmPerfAlpaIndx }
 ::= { swBlmPerfALPAMntTable 1}

 SwBlmPerfALPAMntEntry ::= SEQUENCE {
 swBlmPerfAlpaPort           SwPortIndex,
 swBlmPerfAlpaIndx           Integer32 (1..126),
 swBlmPerfAlpa               Integer32 (0..2147483647),
 swBlmPerfAlpaCRCCnt         OCTET STRING
 }

 swBlmPerfAlpaPort       OBJECT-TYPE
   SYNTAX          SwPortIndex
   MAX-ACCESS          read-only
   STATUS          current
   DESCRIPTION     " This Object identifies the port index of the switch."
 ::= { swBlmPerfALPAMntEntry 1}

 swBlmPerfAlpaIndx           OBJECT-TYPE
 SYNTAX          Integer32 (1..126)
 MAX-ACCESS          read-only
 STATUS          current
 DESCRIPTION   " This Object identifies the ALPA index. There can be 126 ALPA values"
 ::= { swBlmPerfALPAMntEntry 2}

 swBlmPerfAlpa           OBJECT-TYPE
   SYNTAX          Integer32 (0..2147483647) 
   MAX-ACCESS          read-only
   STATUS          current
   DESCRIPTION  " This Object identifies the ALPA values. These values
                  range between x'01' and x'EF'(1 to 239). ALPA value x'00'
                  is reserved for FL_Port
                                  If Alpa device is invalid, then it will have -1 value.  "
 ::= { swBlmPerfALPAMntEntry 3}

 swBlmPerfAlpaCRCCnt     OBJECT-TYPE
   SYNTAX          OCTET STRING (SIZE(8))
   MAX-ACCESS          read-only
   STATUS          current
   DESCRIPTION   "Get CRC count for given ALPA and port. This monitoring
                                  provides information on the number of CRC errors
                                  occurred on the frames destined to each possible ALPA
                                  attached to a specific port."

 ::= { swBlmPerfALPAMntEntry 4}

 swBlmPerfEEMntTable        OBJECT-TYPE
   SYNTAX          SEQUENCE OF SwBlmPerfEEMntEntry
   MAX-ACCESS          not-accessible
   STATUS          current
   DESCRIPTION     " End-to-End  monitoring counter Table"
 ::= { swBlmPerfMnt 2}

 swBlmPerfEEMntEntry        OBJECT-TYPE
   SYNTAX          SwBlmPerfEEMntEntry
   MAX-ACCESS          not-accessible
   STATUS          current
   DESCRIPTION     "End-to-End monitoring counter for given port."
   INDEX               { swBlmPerfEEPort, swBlmPerfEERefKey}
 ::= { swBlmPerfEEMntTable 1}

 SwBlmPerfEEMntEntry ::= SEQUENCE{
 swBlmPerfEEPort         SwPortIndex,
 swBlmPerfEERefKey       Integer32 (1..8),
 swBlmPerfEECRC          OCTET STRING,
 swBlmPerfEEFCWRx        OCTET STRING,
 swBlmPerfEEFCWTx        OCTET STRING,
 swBlmPerfEESid          Integer32 (0..2147483647),
 swBlmPerfEEDid          Integer32 (0..2147483647)
}

 swBlmPerfEEPort     OBJECT-TYPE
   SYNTAX          SwPortIndex
   MAX-ACCESS          read-only
   STATUS          current
   DESCRIPTION    " This object identifies the port number of the switch."
 ::= { swBlmPerfEEMntEntry 1}

 swBlmPerfEERefKey      OBJECT-TYPE
   SYNTAX          Integer32 (1..8)
   MAX-ACCESS          read-only
   STATUS          current
   DESCRIPTION     "This object identifies the reference number
                                        of the counter. This reference is  number assigned
                    when a filter is created. In SNMP Index start one
                    instead of 0, add one to actual ref key"
 ::= { swBlmPerfEEMntEntry 2}

 swBlmPerfEECRC      OBJECT-TYPE
   SYNTAX          OCTET STRING (SIZE(8))
   MAX-ACCESS          read-only
   STATUS          current
   DESCRIPTION    " Get End to End CRC error for the frames that matched
                                        the SID-DID pair."
::= { swBlmPerfEEMntEntry 3}


 swBlmPerfEEFCWRx        OBJECT-TYPE
   SYNTAX          OCTET STRING (SIZE(8))
   MAX-ACCESS          read-only
   STATUS          current
   DESCRIPTION     "Get End to End count of Fibre Channel words (FCW),
                                        received by the port, that matched
                                    the SID-DID pair. "
 ::= { swBlmPerfEEMntEntry 4 }

 swBlmPerfEEFCWTx        OBJECT-TYPE
   SYNTAX          OCTET STRING (SIZE(8))
   MAX-ACCESS          read-only
   STATUS          current
   DESCRIPTION     "Get End to End count of Fibre Channel words (FCW),
                                        transmitted by the port, that matched the SID-DID pair. "
 ::= { swBlmPerfEEMntEntry 5}

 swBlmPerfEESid      OBJECT-TYPE
   SYNTAX          Integer32 (0..2147483647)
   MAX-ACCESS          read-only
   STATUS          current
   DESCRIPTION     " Gets SID info by reference number. SID (Source Identifier)
                                is a 3-byte field in the frame header used to indicate the
                                        address identifier of the N-Port from which the frame was sent."
 ::= { swBlmPerfEEMntEntry 6 }

 swBlmPerfEEDid      OBJECT-TYPE
   SYNTAX          Integer32 (0..2147483647)
   MAX-ACCESS          read-only
   STATUS          current
   DESCRIPTION     "Gets DID info by reference number.
                    DID (Destination Identifier) is a 3-byte field in the
                    frame header used to indicate the address identifier of 
                    the N-Port to which the frame was sent."
 ::= { swBlmPerfEEMntEntry 7 }

 swBlmPerfFltMntTable       OBJECT-TYPE
   SYNTAX          SEQUENCE OF SwBlmPerfFltMntEntry
   MAX-ACCESS          not-accessible
   STATUS          current
   DESCRIPTION     "Filter based monitoring counter."
 ::= { swBlmPerfMnt 3}

 swBlmPerfFltMntEntry       OBJECT-TYPE
   SYNTAX          SwBlmPerfFltMntEntry
   MAX-ACCESS          not-accessible
   STATUS          current
   DESCRIPTION     " Filter base monitoring counter for given port."
   INDEX           { swBlmPerfFltPort,swBlmPerfFltRefkey}
 ::= { swBlmPerfFltMntTable 1}

 SwBlmPerfFltMntEntry ::= SEQUENCE{
 swBlmPerfFltPort        SwPortIndex,
 swBlmPerfFltRefkey      Integer32 (1..8),
 swBlmPerfFltCnt         OCTET STRING,
 swBlmPerfFltAlias       DisplayString(SIZE(0..20))
 }

 swBlmPerfFltPort        OBJECT-TYPE
   SYNTAX          SwPortIndex
   MAX-ACCESS          read-only
   STATUS          current
   DESCRIPTION     "This object identifies the port number of the switch."
 ::= { swBlmPerfFltMntEntry 1}

 swBlmPerfFltRefkey      OBJECT-TYPE
   SYNTAX          Integer32 (1..8)
   MAX-ACCESS          read-only
   STATUS          current
   DESCRIPTION    " This object identifies the reference number of the filter.
                                        This reference number is assigned when a filter is created.
                                        In SNMP Index start one instead of 0, add one to actual ref key"
 ::= { swBlmPerfFltMntEntry 2}

 swBlmPerfFltCnt     OBJECT-TYPE
   SYNTAX          OCTET STRING (SIZE(8))
   MAX-ACCESS          read-only
   STATUS          current
   DESCRIPTION     "Get statistics of filter based monitor.
                                        Filter based monitoring provides information
                                about a filter hit count such as
                                                1.  Read command
                                                2.  SCSI or IP traffic
                                                3.  SCSI Read/Write"
 ::= { swBlmPerfFltMntEntry 3 }

 swBlmPerfFltAlias       OBJECT-TYPE
   SYNTAX          DisplayString(SIZE(0..20))
   MAX-ACCESS          read-only
   STATUS          current
   DESCRIPTION    " Alias name for the filter."
 ::= { swBlmPerfFltMntEntry 4}

swSwitchTrunkable               OBJECT-TYPE
  SYNTAX                        INTEGER { yes ( 8 ) , no ( 0 ) }
  MAX-ACCESS                    read-only
  STATUS                        current
  DESCRIPTION   "The trunking status of the switch - whether the switch supports the trunking feature or not. The values are
                yes(8) - the trunking feature is supported
                no(0). - the trunking feature is not supported. "

 ::= { swTrunk 1}

swTrunkTable                    OBJECT-TYPE
  SYNTAX                        SEQUENCE OF SwTrunkEntry
  MAX-ACCESS                    not-accessible
  STATUS                        current
  DESCRIPTION   " Table to display trunking information for the switch. "
 ::= { swTrunk 2}

swTrunkEntry            OBJECT-TYPE
  SYNTAX                        SwTrunkEntry
  MAX-ACCESS                    not-accessible
  STATUS                        current
  DESCRIPTION   "Entry for the trunking table."
  INDEX { swTrunkPortIndex }
 ::= { swTrunkTable 1}

SwTrunkEntry ::= SEQUENCE{
  swTrunkPortIndex      SwPortIndex,
  swTrunkGroupNumber Integer32 (0..2147483647),
  swTrunkMaster         SwTrunkMaster,
  swPortTrunked         INTEGER
 }

swTrunkPortIndex                OBJECT-TYPE
  SYNTAX                        SwPortIndex
  MAX-ACCESS                    read-only
  STATUS                        current
  DESCRIPTION           "This object identifies the switch port index.
                        Note that the value of a port index is 1 higher than the
                        port number labeled on the front panel.
                        e.g. port index 1 correspond to port number 0. "
 ::= { swTrunkEntry 1 }

swTrunkGroupNumber              OBJECT-TYPE
        SYNTAX                  Integer32 (0..2147483647) 
        MAX-ACCESS                      read-only
        STATUS                  current
        DESCRIPTION             "This object is a logical entity which specifies 
                                        the Group Number to which the port belongs to.
                                        If this value is Zero it means the port is not Trunked."
        ::= { swTrunkEntry 2}

swTrunkMaster                   OBJECT-TYPE
  SYNTAX                        SwTrunkMaster
  MAX-ACCESS                    read-only
  STATUS                        current
  DESCRIPTION           "Port number that is the trunk master of the group. 
                        The trunk master implicitly defines the group. 
                        All ports with the same master are considered to be part of the same group."
 ::= { swTrunkEntry 3 }

  swPortTrunked     OBJECT-TYPE
  SYNTAX                        INTEGER {disabled(0), enabled(1)}
  MAX-ACCESS                    read-only
  STATUS                        current
  DESCRIPTION           "The active trunk status for a member port.
                                Values are enabled(1) or disabled(0)."
 ::= { swTrunkEntry 4 }


  swTrunkGrpTable   OBJECT-TYPE
  SYNTAX          SEQUENCE OF SwTrunkGrpEntry
  MAX-ACCESS          not-accessible
  STATUS          current
  DESCRIPTION     "Table to display trunking Performance
                                        information for the switch."
   ::= { swTrunk 3}

   swTrunkGrpEntry     OBJECT-TYPE
   SYNTAX          SwTrunkGrpEntry
   MAX-ACCESS          not-accessible
   STATUS          current
   DESCRIPTION     "Entry for the trunking Group table."
   INDEX   { swTrunkGrpNumber}
   ::= { swTrunkGrpTable 1}

        SwTrunkGrpEntry ::= SEQUENCE{
        swTrunkGrpNumber        Integer32 (0..2147483647),
        swTrunkGrpMaster        SwTrunkMaster,
        swTrunkGrpTx            OCTET STRING (SIZE (8)),
        swTrunkGrpRx            OCTET STRING (SIZE (8)) 
        }

        swTrunkGrpNumber        OBJECT-TYPE
        SYNTAX          Integer32 (0..2147483647)
        MAX-ACCESS          read-only
        STATUS          current
        DESCRIPTION     "This object is a logical entity which
                                        specifies the Group Number to which port 
                                        belongs to."
    ::= { swTrunkGrpEntry  1 }

   swTrunkGrpMaster        OBJECT-TYPE
   SYNTAX          SwTrunkMaster
   MAX-ACCESS          read-only
   STATUS          current
   DESCRIPTION     "This object gives the master port id
                                        for the TrunkGroup."
        ::= { swTrunkGrpEntry  2 }

        swTrunkGrpTx            OBJECT-TYPE
          SYNTAX          OCTET STRING (SIZE (8))
          MAX-ACCESS          read-only
          STATUS          current
          DESCRIPTION     "Gives the aggregate value of the    
                                           transmitted words from this TrunkGroup."
        ::= { swTrunkGrpEntry  3}

         swTrunkGrpRx            OBJECT-TYPE
           SYNTAX            OCTET STRING (SIZE (8))
           MAX-ACCESS          read-only
           STATUS          current
           DESCRIPTION     "Gives the aggregate value of the  
                                                received words by this TrunkGroup."
        ::= { swTrunkGrpEntry  4 }


--
-- Enterprise Specific Traps for Fibre Channel Switch (sw).
--

  swTrapsV2 OBJECT-IDENTITY
    STATUS     current
        DESCRIPTION     "The Traps for Brocade's Fibre Channel Switch."
        ::= { sw 0 }

  swFault               NOTIFICATION-TYPE
        OBJECTS { swDiagResult, swSsn , swGroupName, swGroupType, swGroupMemPos }
        STATUS  obsolete
        DESCRIPTION     "Obsoleted this trap as firmware doesn't support this trap.
                A swFault(1) is generated whenever the diagnostics
                detects a fault with the switch."
        --#TYPE         "Switch is faulty."
        --#SUMMARY      "Faulty reason: %d and SSN is #%s,GroupName %s,GroupType %s,GroupMemPosition %d""
        --#ARGUMENTS    { 0, 1, 2, 3, 4}
        --#SEVERITY     CRITICAL
        --#TIMEINDEX    1
        --#STATE        NONOPERATIONAL
        ::= { swTrapsV2 1 }

  swSensorScn   NOTIFICATION-TYPE
        OBJECTS { swSensorStatus, swSensorIndex, swSensorType,
                                        swSensorValue, swSensorInfo, swSsn,
                                        swGroupName, swGroupType, swGroupMemPos }
        STATUS  current
        DESCRIPTION     "A swSensorScn(2) is generated whenever an
                environment sensor changes its operational state. For instance,
                a fan stop working. The VarBind in the Trap Data Unit shall
                contain the corresponding instance of the sensor
                status, sensor index, sensor type, sensor value (reading)
                and sensor information. Note that the sensor information
                contains the type of sensor and its number in textual format."
        --#TYPE         "A sensor (temperature, fan, etc.) changed its operational state."
        --#SUMMARY      "%s: is currently in state %d and SSN is #%s"
        --#ARGUMENTS    { 4, 0, 5 }
        --#SEVERITY     INFORMATIONAL
        --#TIMEINDEX    1
        --#STATE        OPERATIONAL
        ::= { swTrapsV2 2 }

   swFCPortScn          NOTIFICATION-TYPE
        OBJECTS { swFCPortOpStatus, swFCPortIndex, swFCPortName,
                                        swSsn, swFCPortFlag, swGroupName, swGroupType,
                                        swGroupMemPos }
        STATUS  current
        DESCRIPTION     "A swFCPortScn(3) is generated whenever an FC_Port
                changes its operational state. For instance, the FC_Port
                goes from on-line to offline. The VarBind in the Trap Data
                Unit shall contain the corresponding instance of the
                FC_Port's operational status, index, swFCPortName,swSsn and
                swFCPortFlag. swSsn is optional varbind sent when swExtTrap
                is also enabled. The three arguments swGroupName, swGroupType,
                swGroupMemPos belong to swGroup table which is obsolete
                and not implemented."
        --#TYPE         "A Fibre Channel Port changed its operational state."
        --#SUMMARY      "Port Index %d changed state to %d  Port Name: %s and SSN is #%s"
        --#ARGUMENTS    { 1, 0, 2, 3 }
        --#SEVERITY     INFORMATIONAL
        --#TIMEINDEX    1
        --#STATE        OPERATIONAL
        ::= { swTrapsV2 3 }

   swEventTrap           NOTIFICATION-TYPE
        OBJECTS       { swEventIndex, swEventTimeInfo, swEventLevel,
                          swEventRepeatCount, swEventDescr, swSsn,
                                                  swGroupName,swGroupType,swGroupMemPos }
        STATUS      current
        DESCRIPTION     "This trap is generated when an event whose
                level at or below swEventTrapLevel occurs."
        --#TYPE         "A firmware event has been logged"
        --#SUMMARY      "Event %d: %s (severity level %d) - %s SSN is #%s"
        --#ARGUMENTS    { 0, 1, 2, 4, 5 }
        --#SEVERITY     INFORMATIONAL
        --#TIMEINDEX    1
        --#STATE        OPERATIONAL
        ::= { swTrapsV2 4 }

  -- traps for Fabric Watch subsystem

  swFabricWatchTrap     NOTIFICATION-TYPE
        OBJECTS {       swFwClassAreaIndex,
                                        swFwThresholdIndex,
                                        swFwName,
                                        swFwLabel,
                                        swFwLastEventVal,
                                        swFwLastEventTime,
                                        swFwLastEvent,
                                        swFwLastState,
                                        swFwLastSeverityLevel,
                                        swSsn,
                                    swGroupName,
                                        swGroupType,
                                        swGroupMemPos
                                        }
        STATUS  current
        DESCRIPTION     "trap to be sent by Fabric Watch to notify of an event"
        --#TYPE         "Fabric Watch has generated an event"
        --#SUMMARY      "Threshold %s in Class/Area %d at index %d has generated event %d with %d on %s. This event is %d. This event label is %d, event severity level is %d and SSN is #%s"
        --#ARGUMENTS    { 2, 0, 1, 6, 4, 5, 7, 3, 8, 9 }
        --#SEVERITY     WARNING
        --#TIMEINDEX    1
        --#STATE        OPERATIONAL
        ::= { swTrapsV2 5 }

  -- traps for track changes subsystem

  swTrackChangesTrap    NOTIFICATION-TYPE
        OBJECTS {       swTrackChangesInfo, swSsn,
                                        swGroupName, swGroupType, swGroupMemPos
                                        }
        STATUS  current
        DESCRIPTION     "trap to be sent for tracking login/logout/config changes"
        --#TYPE         "Track changes has generated a trap"
        --#SUMMARY      "%s and SSN is #%s"
        --#ARGUMENTS    { 0, 1 }
        --#SEVERITY     INFORMATIONAL
        --#TIMEINDEX    1
        --#STATE        OPERATIONAL
        ::= { swTrapsV2 6 }

   -- end of Enterprise Specific Traps for Fibre Channel Switch (sw)
END